Android动态排列布局

问题描述:

我正在开发一个演奏android应用程序的口琴,其中显示口琴乐器并且它的某些部分是可点击的。Android动态排列布局

我想显示仪器的全宽图片(高度相应调整),它的某些部分是可点击的,并且它们必须根据图片大小动态定位。

问题是我不知道如何使用布局元素来实现这一点,所以它可以在不同屏幕尺寸的设备上进行渲染。使用什么布局?

将仪器显示为布局的ImageView或背景以及如何使其适合?

反正有按钮相对于图片的宽度和高度吗?或者它必须以编程方式完成?而且它们的宽度和高度必须随着孔变大或变小而变化。

我没有太多的android布局经验,我完全停留在如何做到这一点。

这是仪器的样本图片:

enter image description here

我想使孔可点击虽然在不同设备中的图片尺寸的变化。

任何建议会帮助我这么多。

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

+0

请你解释一下,我没有得到任何东西:) – Ali 2013-04-24 10:22:44

+0

我想他是试图用这段代码平移图像使ontouch事件,并从它得到x和y – 2013-04-24 10:32:25

+0

我试过这个,当我旋转手机和触摸图像上的相同位置,它会给出不同的坐标。 – Ali 2013-04-24 11:01:58