更改按钮的drawableLeft点击按钮时
问题描述:
我有Button
与drawableLeft
当我点击它时,我只想改变其他图像的drawableleft
。我必须使用哪些Java代码?更改按钮的drawableLeft点击按钮时
XML
:
<Button
android:id="@+id/docli_btn_apagar"
android:layout_width="200dp"
android:layout_height="70dp"
android:background="@android:color/transparent"
android:onClick="ApagarLinha"
android:drawableLeft="@drawable/trash"
android:text="@string/apagar"
android:textAppearance="?android:attr/textAppearanceLarge"/>
答
这将在您的按钮的onClick()
处理
// get your button
Button docli_btn_apagar = (Button) findViewById(R.id.docli_btn_apagar);
// get the drawable
Drawable img = getContext().getResources().getDrawable(R.drawable.smiley);
// set the drawable left
docli_btn_apagar.setCompoundDrawablesWithIntrinsicBounds(img, null, null, null);
或可选择地被称为:
// You can skip the drawable object directly, by using ints/IDs
docli_btn_apagar.setCompoundDrawablesWithIntrinsicBounds(R.drawable.smiley, 0, 0, 0);
+0
哇,这工作就像我想,谢谢 – Celta 2013-04-24 14:26:30
+0
@Celta很高兴我可以帮助。一定要给它一个upvote! – 2013-04-24 17:14:18
答
public class AsyncClassTest extends Activity {
String strMessage;
private Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = (Button) findViewById(R.id.docli_btn_apagar);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
((Button) view).setCompoundDrawables(getResources().getDrawable(android.R.drawable.btn_plus), null, null, null);
}
});
}
}
来吧,你能想出一个一点你自己的代码,不是? – 2013-04-24 14:08:07
你的意思是按下不同的图像,当你释放按钮回到原来的可绘制的,对吧? – Pratik 2013-04-24 14:12:32
没有Pratik,点击后我想要图像改变 – Celta 2013-04-24 14:24:30