gpt4 book ai didi

android - 如何使 OnTouch() 对单个 View 使用react

转载 作者:行者123 更新时间:2023-11-29 13:59:31 25 4
gpt4 key购买 nike

我有一个非常简单的布局:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical" >

<ImageView
android:id="@+id/board"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/boardmask" />

</LinearLayout>

和一个非常简单的 Activity :

public class BoardActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.board_activity);
ImageView board = (ImageView) findViewById(R.id.board);
board.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_UP) {
Log.i("OnTouch", event.getX() + " " + event.getY());
}
return true;
}
});
}
}

ImageView 垂直方向大约是屏幕的一半,并且居中。有人可以解释为什么点击屏幕顶部或底部会生成 OnTouch 事件,它应该在 ImageView 之外,不是吗?

致以最诚挚的问候,非常感谢。

最佳答案

我经常看到这种情况发生,我还没有找到谷歌在哪里解释过这个。我将尝试解释我是如何理解它的。

当您添加一个 ImageView 并为其提供源时,或者稍后以编程方式添加图像时,ImageView 会根据图像的尺寸自行调整大小。但有时当源图像大于屏幕尺寸时,它会根据 scaleType(如果提供)进行缩放,或者只缩放图像以使最大的一侧完全适合屏幕,而另一侧则保持尺寸不变。

但是当图片插入ImageView后,ImageView的Bounds并没有自动调整到新缩放的图片。为此,在 ImageView 中有另一个名为 android:adjustViewBounds

的参数

所以尝试在您的 Imageview 中执行此操作。

<ImageView
android:id="@+id/board"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/boardmask"
android:adjustViewBounds="true"/>

关于android - 如何使 OnTouch() 对单个 View 使用react,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10176420/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com