我需要在每次单击时更改切换按钮的图像.
这样做有效吗?
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)); } }
或者这是否意味着每次都会从PNG文件中解码Drawable?
在这种情况下,只调用getDrawable()两次(在onCreate()中)并保持我自己对2 Drawables的引用会更好.
解决方法
如果每次使用此方法时调用是否有效,则不响应您的问题.
但正如@ njzk2所说,你可以在你的切换按钮上使用 State Selector.
但正如@ njzk2所说,你可以在你的切换按钮上使用 State Selector.
我给你复制一个工作的例子(我正在使用).只需更改您的drawables的drawable名称即可.
<?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”是我之前复制的文件的名称.
有了这个,您可以忘记每次加载drawable的效率.
希望这可以帮助.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。