如何创建一个仍然可点击的透明背景的ImageButton(仍然像Button一样)?
这是xml片段:
<ImageButton
android:paddingRight="10dp"
android:paddingLeft="10dp"
android:paddingTop="7dp"
android:paddingBottom="7dp"
android:src="@drawable/serverschedule"
android:background="@null"
android:clickable="true"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="@string/predict"
local:MvxBind="Click PredictCmd" />
我还尝试了android:background="#00000000"
和android:background="@android:color/transparent"
,在所有情况下,我都获得了所需的视觉效果,但不再可以点击按钮。
我使用MvvmCross框架绑定到按钮的Click事件,因此没有代码。
我正在测试API等级15,如果这很重要。
编辑为按钮添加了整个axml。 编辑添加MVVM框架,因为它可能与问题有关。
TIA。
答案 0 :(得分:2)
答案 1 :(得分:0)
请提供按钮的宽度和高度。
也试试这个:
ImageButton theButton = (ImageButton )findViewById(R.id.theButton);
theButton.setVisibility(View.VISIBLE);
theButton.setBackgroundColor(Color.TRANSPARENT);
theButton.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
// DO STUFF
}
});
希望这有帮助。
答案 2 :(得分:0)
做某些必要的改变
<ImageButton
android:paddingRight="10dp"
android:paddingLeft="10dp"
android:paddingTop="7dp"
android:paddingBottom="7dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/serverschedule"
android:background="@null"
android:id="@+id/mybutton"
</ImageButton
进入你的代码:
mybutton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
//Your Stuff here
}
});
答案 3 :(得分:0)
试试这个......
<ImageButton
android:id="@+id/imageButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/timeText"
android:layout_centerHorizontal="true"
android:background="@android:color/transparent"
android:clickable="true"
android:contentDescription="image button"
android:src="@drawable/anchor" />
将clickable属性设置为true,并处理活动中的onclick事件,如
findViewById(R.id.imageButton).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(getApplicationContext(), "text", Toast.LENGTH_SHORT).show();
}
});
答案 4 :(得分:0)
您的xml文件没有变化..甚至无需添加此android:clickable="true"
编辑您的java文件,如下面的代码......
ImageButton imageButton;
@Override
public void onCreate(Bundle savedInstanceState) {
imageButton = (ImageButton) findViewById(R.id.imageButton1);
imageButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
Toast.makeText(MyAndroidAppActivity.this,
"ImageButton is clicked!", Toast.LENGTH_SHORT).show();
}
});
}
}
如果这不起作用,您的父布局可能会出现问题。如果是的话请发帖....
答案 5 :(得分:0)
“充当按钮”的含义是什么?当你使用
android:background="@null"
你的ImageButton没有背景,你可以使用选择器作为src,你会得到与按钮相同的行为,也可以像往常一样点击 像这样的选择
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/button_bg_pressed" android:state_pressed="true"/>
<item android:drawable="@drawable/button_bg_pressed" android:state_focused="true"/>
<item android:drawable="@drawable/button_bg_normal"/>
</selector>
答案 6 :(得分:0)
back.setBackgroundColor(Color.TRANSPARENT);
适用于所有Android版本