相关疑难解决方法(0)

如何更改图层列表drawable?

试图学习一些新的东西,无法想出这一点,任何帮助表示赞赏.鉴于这个简单的代码来自Google的文档:

layers.xml:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/first_image">
      <bitmap android:src="@drawable/android_red"
        android:gravity="center" />
    </item>
    <item android:id="@+id/second_image" android:top="10dp" android:left="10dp">
      <bitmap android:src="@drawable/android_green"
        android:gravity="center" />
    </item>
    <item android:id="@+id/third_image" android:top="20dp" android:left="20dp">
      <bitmap android:src="@drawable/android_blue"
        android:gravity="center" />
    </item>
</layer-list>
Run Code Online (Sandbox Code Playgroud)

和main.xml:

<ImageView
    android:id="@+myImageView"
    android:layout_height="wrap_content"
    android:layout_width="wrap_content"
    android:src="@drawable/layers" />
Run Code Online (Sandbox Code Playgroud)

问题:如何以编程方式引用图层列表中的一个drawable,以便将其更改为不同的drawable?

谢谢.

所以现在我有了我的新drawable,我想换变量myImage正确吗?现在我如何将其纳入图层列表?我想我用findDrawableByLayerIdsetDrawableByLayerId,但究竟如何?或者我可能完全错了!救命!

我想做什么?更改显示的drawable.例如,假设我有另一个名为"android_purple"的drawable,我将如何在上面的layer-list示例中为"android_green"drawable切换它?

编辑:

随着我在这里有限的知识是到目前为止我的代码(它工作,我得到的错误setDrawableByLayerId是不确定的):

Resources res = getApplicationContext().getResources();
BitmapDrawable newImage = (BitmapDrawable) res.getDrawable(R.drawable.android_purple); //Get replacement image, can't use LayerDrawable or get error.   
boolean layer_drawable_changed = (setDrawableByLayerId((R.id.second_image), newImage)); //Set …
Run Code Online (Sandbox Code Playgroud)

android android-drawable

43
推荐指数
2
解决办法
5万
查看次数

标签 统计

android ×1

android-drawable ×1