Android动态排列布局
问题描述:
我正在开发一个演奏android应用程序的口琴,其中显示口琴乐器并且它的某些部分是可点击的。Android动态排列布局
我想显示仪器的全宽图片(高度相应调整),它的某些部分是可点击的,并且它们必须根据图片大小动态定位。
问题是我不知道如何使用布局元素来实现这一点,所以它可以在不同屏幕尺寸的设备上进行渲染。使用什么布局?
将仪器显示为布局的ImageView或背景以及如何使其适合?
反正有按钮相对于图片的宽度和高度吗?或者它必须以编程方式完成?而且它们的宽度和高度必须随着孔变大或变小而变化。
我没有太多的android布局经验,我完全停留在如何做到这一点。
这是仪器的样本图片:
我想使孔可点击虽然在不同设备中的图片尺寸的变化。
任何建议会帮助我这么多。
答
该ImageView
有一个内部Matrix
控制如何缩放图像。
我们可以得到这个矩阵并将其反转,以便我们可以将缩放图像上的接触转换为原始图像中的坐标。
float[] xy = new float[]{x, y}; // the xy from the touch event
Matrix inverse = new Matrix();
imageView.getImageMatrix().inverse(inverse);
inverse.mapPoints(xy); // xy now contains the coordinates of the click in the original image
现在,所有你需要做的是与每个音符的位置,一些保存的值匹配xy
。
请你解释一下,我没有得到任何东西:) – Ali 2013-04-24 10:22:44
我想他是试图用这段代码平移图像使ontouch事件,并从它得到x和y – 2013-04-24 10:32:25
我试过这个,当我旋转手机和触摸图像上的相同位置,它会给出不同的坐标。 – Ali 2013-04-24 11:01:58