将已加载的Drawable从资源应用到更多视图

时间:2017-04-02 08:45:40

标签: java android resources drawable

我有一个可绘制的,可点击的。我将它从资源加载到var:

Drawable mDrawable;
mDrawable = ResourcesCompat.getDrawable(getResources(), R.drawable.clickable_d, null);

它是"可点击的可绘制",因此它在点击时不具有不同的状态图像。

clickable_d:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
        <item android:state_pressed="true"
              android:drawable="@drawable/clickable_d_pressed" /> 
        <item android:state_focused="true"
              android:drawable="@drawable/clickable_d_pressed" />  
        <item android:drawable="@drawable/clickable_d_not_pressed" />  
</selector>

我想将此应用于20 ImageButton,因此我尝试将已加载的 mDrawable 设置为所有这些。但紧迫状态只适用于最后一个(20,因为我在fori循环中这样做) - 每次按任何ImageButton时,只有最后一个变为&#34;按下&#34;

如果我将新加载的资源(getResources(), R.drawabl..)设置为每个ImageView,它工作正常。然而,加载20倍相同的drawable并不是最佳化...

如何只加载一次mDrawable,为所有ImageView设置并使其更改状态有效?

0 个答案:

没有答案