如何在Android中点击图片? 我不想使用imageButton,因为它将图像放在按钮上。 我尝试使用以下代码,但点击没有任何反应.. 在xml中:
<ImageView
android:id="@+id/arrow1"
android:src="@drawable/arrow"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_x="12dp"
android:layout_y="90dp"
android:clickable="true"
android:onClick="onClick">
</ImageView>
<。>在.java中:
final ImageView diskView4 = (ImageView) findViewById(R.id.arrow1);
diskView4.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v){
//my codes
}
});
答案 0 :(得分:2)
无需添加额外属性
<ImageView
android:id="@+id/arrow1"
android:src="@drawable/arrow"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_x="12dp"
android:layout_y="90dp" />
这样做,你的代码似乎没问题。通过
跟踪您的点击次数diskView4.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v){
System.out.println("image clicked...");//check logcat
}
});
答案 1 :(得分:2)
将imagebutton的背景设置为透明,甚至更好地设置为android.R.attr.selectableItemBackground。那么你甚至可以像标准的无边框按钮一样使用onClick效果。
<ImageButton
android:background="?android:attr/selectableItemBackground"
android:src="@drawable/yourimage "/>
答案 2 :(得分:1)
使用android:onClick="doSomething"
XML标记非常简单。
在你夸大布局(通常是活动)的上下文中,你必须声明一个类似的函数
public void doSomething(View view)
您可以在此处的文档中找到此信息
http://developer.android.com/reference/android/view/View.html#attr_android:onClick
通过这种方式,如果Image onClick不是动态的,您将获得更清晰的活动。
修改强>
示例,在XML布局
中<ImageView
android:id="@+id/image_id"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:src="@drawable/image"
android:onClick="doSomething" />
如果要打开新的活动,请在活动中
class ImageActivity extend Activity{
@Override
public void onCreate(Bundle params){ //... }
public void doSomething(View view){
startActivity(new Intent(this, AnotherActivity.class));
}
}
在View元素中,您可以获得单击的视图,因此您可以识别哪个元素已触发该功能。
public void doSomething(View view){
if( view.getId() == R.id.image_id)
startActivity(new Intent(this, AnotherActivity.class));
else
Log.i("Image", "Try to open the Activity from another view different from ImageView")
}
答案 3 :(得分:1)
如果以上解决方案对您不起作用,那么您可以试试这个。
main.xml中
<ImageView
android:id="@+id/img_call_icon"
android:layout_width="40px"
android:layout_height="40px"
android:clickable="true"
android:onClick="onClickHandler"/>
在MyActivity.java中
public void onClickHandler (View v)
{
switch (v.getId()) {
case R.id.img_call_icon:
// put your onclick code here
}
}
...谢谢