【发布时间】:2014-02-02 12:58:55
【问题描述】:
我有一个使用 btn_star 的图像按钮。它看起来像一个灰色按钮上的小星星。
我想在运行时使用背景资源来改变星星,但由于某种原因,当我尝试改变它时,它只改变了灰色部分而不是星星部分,所以看起来有两颗星星在彼此的顶部。它是我使用的以下命令。
btnChild.setBackgroundResource(android.R.drawable.btn_star_big_on);
如何仅更改 imagebutton 中的星号部分并保留灰色“按钮”部分?
public void myClickHandler(View v)
{
//reset all the listView items background colours before we set the clicked one..
ListView lvItems = getListView();
listposition = lvItems.getFirstVisiblePosition();
state = lvItems.onSaveInstanceState();
RelativeLayout vwParentRow = (RelativeLayout)v.getParent();
TextView child = (TextView)vwParentRow.getChildAt(3);
ImageButton btnChild = (ImageButton)vwParentRow.getChildAt(9);
Checkiffavorite();
boolean favourite=false;
for (String s : favourite_id){
if (s.equals(child.getText().toString()))
favourite=true;
}
if (favourite)
{
btnChild.setSelected(false);
DeleteFromDatabase(child.getText().toString());
btnChild.setImageResource(android.R.drawable.btn_star);
//ImageButton _Favorbtn1 = (ImageButton)btnChild.findViewById(R.id.BtnToClick);
}
else
{
btnChild.setSelected(true);
AddToDatabase(child.getText().toString());
btnChild.setImageResource(android.R.drawable.btn_star_big_on);
}
ListView lv = getListView();
lv.onRestoreInstanceState(state);
}
xml:
图像按钮 android:id="@+id/BtnToClick" android:layout_width="60dp" android:layout_height="60dp" android:onClick="myClickHandler" android:layout_marginTop="4dp"
android:layout_alignParentRight="true"
安卓:focusableInTouchMode="true" android:focusable="true"
最好的问候 乔
【问题讨论】:
-
您能否向我们展示一下您更改 Button 背景的 XML 代码和 Java 部分?
标签: java android imagebutton