实现“android databinding xml设置 drawable”教程
整体流程
下面是实现“android databinding xml设置 drawable”的步骤:
步骤 | 操作 |
---|---|
1 | 创建一个drawable资源文件 |
2 | 在布局文件中使用DataBinding设置drawable |
具体步骤
步骤1:创建drawable资源文件
首先,我们需要在res/drawable
目录下创建一个drawable资源文件,用于存放我们的图片资源。比如,我们创建了一个名为custom_background.xml
的drawable资源文件。
<!-- custom_background.xml -->
<shape xmlns:android="
android:shape="rectangle">
<solid android:color="#FF0000" />
</shape>
在这个xml文件中,我们定义了一个矩形形状,并设置了背景颜色为红色。
步骤2:在布局文件中使用DataBinding设置drawable
接下来,我们需要在布局文件中使用DataBinding来设置刚刚创建的drawable资源。
<!-- activity_main.xml -->
<layout xmlns:android="
xmlns:app="
<data>
<import type="android.graphics.drawable.Drawable"/>
<variable
name="viewModel"
type="com.example.MyViewModel" />
</data>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@{viewModel.image}"
android:background="@drawable/custom_background" />
</RelativeLayout>
</layout>
在这个布局文件中,我们通过DataBinding设置了ImageView的背景为刚刚创建的drawable资源custom_background
。同时,我们需要在ViewModel中设置image
属性为一个Drawable对象。
最后,记得在Activity中绑定ViewModel并设置数据,这样就完成了在xml中设置drawable的操作。
// MainActivity.java
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ActivityMainBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_main);
MyViewModel myViewModel = new MyViewModel(getResources().getDrawable(R.drawable.custom_background));
binding.setViewModel(myViewModel);
}
}
类图
classDiagram
class MainActivity {
+onCreate(Bundle): void
}
class MyViewModel {
-drawable: Drawable
+getDrwable(): Drawable
}
class ActivityMainBinding {
+setViewModel(MyViewModel): void
}
通过以上步骤,你就成功实现了在Android中使用DataBinding设置drawable的操作。希望这篇教程对你有所帮助!