Android 触摸事件不发生';不要在ImageView上工作
我试图在图像上发生触摸事件时添加图像按钮。使用ImageView显示图像。但当我触摸图像时,什么也没有发生。 代码附于此 Quick.javaAndroid 触摸事件不发生';不要在ImageView上工作,android,imageview,ontouchlistener,Android,Imageview,Ontouchlistener,我试图在图像上发生触摸事件时添加图像按钮。使用ImageView显示图像。但当我触摸图像时,什么也没有发生。 代码附于此 Quick.java ImageView myImageView = (ImageView)findViewById(R.id.imgView); Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.india_map); myImageView.setImageBitm
ImageView myImageView = (ImageView)findViewById(R.id.imgView);
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.india_map);
myImageView.setImageBitmap(bitmap);
myImageView.setOnTouchListener(new OnTouchListener()
{
@Override
public boolean onTouch(View v, MotionEvent event)
{
ImageButton imgbutton=(ImageButton)findViewById(R.id.imageButton1);
Bitmap image = BitmapFactory.decodeResource(getResources(),R.drawable.image5);
imgbutton.setImageBitmap(image);
imgbutton.setVisibility(View.VISIBLE);
return false;
}
});
activity_quick.xml
<LinearLayout
android:id="@+id/tab2"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:padding="5dp" >
<ImageView
android:id="@+id/imgView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:scaleType="fitXY"
android:contentDescription="@string/desc"
android:src="@drawable/india_map"/>
<ImageButton
android:id="@+id/imageButton1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/image5"
android:contentDescription="@string/desc"
android:visibility="invisible" />
</LinearLayout>
请帮助我解决此问题用于将一个视图置于另一个视图之上
请尝试以下操作:
<FrameLayout
android:id="@+id/tab2"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:padding="5dp" >
<ImageView
android:id="@+id/imgView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:scaleType="fitXY"
android:contentDescription="@string/desc"
android:src="@drawable/india_map"/>
<ImageButton
android:id="@+id/imageButton1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:src="@drawable/image5"
android:contentDescription="@string/desc"
android:visibility="gone" />
</FrameLayout>
无需在java代码中设置图像位图。您已经在xml中指定了它们
myImageView.setOnTouchListener(new OnTouchListener()
{
@Override
public boolean onTouch(View v, MotionEvent event)
{
ImageButton imgbutton=(ImageButton)findViewById(R.id.imageButton1);
Bitmap image = BitmapFactory.decodeResource(getResources(),R.drawable.image5);
imgbutton.setImageBitmap(null);
imgbutton.setImageBitmap(image);
imgbutton.setVisibility(View.VISIBLE);
return false;
}
});
首先将图像位图设置为空,然后将其他位图设置为空。将图像视图设置为可单击。在xml中使用android:clickable=“true”使用TouchListener有什么特殊原因吗?(ex>用于处理夹持或滑动手势)
如果你认为只是“处理点击事件的图像”,我认为使用OnCLIKListNER而不是OnTouChistListar更容易。例如
View iv = findViewById(R.id.imgView));
iv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
ImageButton imgbutton=(ImageButton)findViewById(R.id.imageButton1);
Bitmap image = BitmapFactory.decodeResource(getResources(),R.drawable.image5);
imgbutton.setImageBitmap(image);
imgbutton.setVisibility(View.VISIBLE);
});
还有一件事,你可以考虑在主UI线程中解码位图总是不好的,那么如何考虑使用另一个线程或处理位图。您必须将ImageView的高度从fill\u parent更改为wrap\u content…在触摸事件期间,onTouch将被多次调用。您可以在onClick()中执行此操作。。问题是imgView正在填充父级,如何将图像按钮放在ImageView的顶部。顶部的意思是?在上面还是在上面?@rlHaN JiTHiN在上面。@maria看到编辑过的答案。使用
onClickListener
而不是touchtlistener
。我是这个领域的新手。我将添加另一个线程来处理此单击事件。谢谢你的评论。