实现“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的操作。希望这篇教程对你有所帮助!