每次单击切换按钮时,我都需要更改其图像。
这样做有效吗?
public void onClickToggleButton(View v) {
if(_on) {
_on=false;
myImageView.setImageDrawable(getResources().getDrawable(R.drawable.btn_off));
} else {
_on=true;
myImageView.setImageDrawable(getResources().getDrawable(R.drawable.btn_on));
}
}
或者这是否意味着
Drawable
每次都将从png文件中解码?在这种情况下,只调用
getDrawable()
两次(在onCreate()
中)并保留自己对2Drawable
s的引用会更好。 最佳答案
这不会回答你的问题,如果是有效的或不调用每次这个方法。
但正如@njzk2所指出的,您可以在切换按钮上使用State Selector。
我给你一个工作的例子(我正在使用)。只需根据您的可抽件更改可抽件的名称。
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/toggle_on" android:state_checked="true" />
<item android:drawable="@drawable/toggle_off" android:state_checked="false" />
</selector>
在定义toogle按钮的xml上,将背景设置为:
android:background="@drawable/toogle_selector"
其中“toogle_selector”是我以前复制的文件的名称。
有了这个,你可以忘记每次加载可拉伸的效率。
希望这有帮助。