我有一个imagebutton使用BTN_STAR。它看起来像灰色按钮上的一颗小星星。
我想在运行时使用backgroundresource更改星形图,但由于某种原因,当我尝试更改它时,它只更改了灰色部分而不是星形部分,所以看起来像是两个星形图的顶部。我使用以下命令。
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:
ImageButton android:id=“@+id/btnToClick”android:layout_width=“60dp”android:layout_height=“60dp”android:onclick=“MyClickHandler”android:layout_margintop=“4dp”
android:layout_alignParentright=“true”
android:layout_alignParentright=“true”android:focusableintouchmode=“true”android:focusable=“true”
向乔问好
修改后的答案
<ImageButton
android:id="@+id/imageButton1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:focusableInTouchMode="true"
android:focusable="true"
android:onClick="myClickHandler"
/>
public void myClickHandler(View v)
{
if(flag==false)
{
flag=true;
imgBtn.setSelected(false);
imgBtn.setImageResource(R.drawable.ic_launcher);
}
else
{
flag=false;
imgBtn.setSelected(true);
imgBtn.setImageResource(R.drawable.star);
}
}
上面的代码对我来说是可行的。
您使用的方法是更改后台资源。若要更改前景,请使用setimageResource(int)
方法:
btnChild.setImageResource(android.R.drawable.btn_star_big_on);
以下图片将帮助您了解我的问题: 我想将显示在图像按钮中的图像拉伸到图像按钮的整个区域。如您所见,数字为1的图片仅占图像按钮的95%,您还可以看到图像按钮的边界。 我仍然希望保持图像按钮样式 以下是我如何使用ImageView: 我想我发现了我的问题所在,我需要一个自定义组件,它只能包含一个图像,并且具有点击效果。
这个问题很基本,但是我想确定没有比我现在做的更好的方法了。假设我有一个脸书图标。到目前为止,当用户悬停在该图像上时,我会显示不同的图像以更改颜色。有没有一种替代的CSS方法来做到这一点,所以我不使用多个图像? 在下面的小提琴中,我试图改变背景,但这只覆盖了整个图像。 JSFIDLE
当我通过eclipse启动时,这会显示图标,但当我将其导出到Runnable Jar时,它会显示默认的Java图标,我不想使用资源的方式来做这件事,因为它甚至在IDE中不起作用。
我看了其他答案,试着: 以及: 在类中,我把图像文件放在资源文件夹中,也放在与我的文件和我项目的根文件夹中,甚至在开始时包含了/符号URL字符串,但没有工作。我想知道最近有没有人尝试过并成功了?
我有一个html页面和一个带有Thymeleaf模板引擎的java应用程序,我正在寻找一个教程,向服务器发出请求,并根据响应仅呈现页面的一部分。 此时,我有一些按钮具有相同页面的链接,带有不同的参数,我的div是基于属性文章列表创建的(我从服务器接收基于button_id) 超文本标记语言: Java: 我希望我的按钮处理我的索引控制器,只更改文章的div,而不是刷新整个页面。 我尝试过使用aja
我有一个RecycerView,在那里我创建了12个ImageButton默认情况下,它们都是黑色的,因为我为imageButton创建了一个具有黑色纯色的自定义形状。自定义形状设置为imageButtons背景 形状: 这就是ImageButtons现在的样子。但它们都有相同的颜色,这不是我想要的。 } 这是来自我的RecycerView适配器类,我在其中infalte layout.item_