Séb*_*ien 8 performance android android-drawable
我需要在每次单击时更改切换按钮的图像.
这样做有效吗?
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));
}
}
Run Code Online (Sandbox Code Playgroud)
或者它是否意味着Drawable
每次都会从PNG文件解码?
在这种情况下,getDrawable()
只调用两次(in onCreate()
)并保持我自己对2 Drawable
s 的引用会更好.
这不会回答您的问题是否有效或不每次调用此方法。但正如 @njzk2 指出的,您可以在切换按钮上使用状态选择器。
我向您复制了一个工作示例(我正在使用)。只需将可绘制对象的名称更改为您的可绘制对象即可。
<?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>
Run Code Online (Sandbox Code Playgroud)
在您定义 Toogle 按钮的 xml 中,将背景设置为:
android:background="@drawable/toogle_selector"
Run Code Online (Sandbox Code Playgroud)
其中“toogle_selector”是我之前复制的文件的名称。
这样你就可以忘记每次加载可绘制对象的效率。
希望这可以帮助。