我想获取ImageView
的坐标,不受设备大小的影响。
是否有可能!!
我尝试为ImageView
创建特定的大小,甚至为Parent View
创建特定的大小,但都不起作用。
我尝试了以下可能的方法。
int[] posXY = new int[2];
imageview.getLocationOnScreen(posXY);
int MoveX = posXY[0];
int MoveY = posXY[1];
我也尝试使用Matrix,但没有起作用。
Matrix m = imageview.getImageMatrix();
尝试了下面的代码,但它也没有起作用。!
我需要在同一位置(Location)上为所有设备获取相同的{x,y}坐标。
final float[] getPointerCoords(ImageView view, MotionEvent e)
{
final int index = e.getActionIndex();
final float[] coords = new float[] {
e.getX(index), e.getY(index)
};
Matrix matrix = new Matrix();
view.getImageMatrix().invert(matrix);
matrix.mapPoints(coords);
return coords;
}
这里是绘图方法:
如果我在绘图中设置位图图像,它不能适应每个设备的屏幕。如果我使用显示器宽度和高度来设置图像,则会得到不同的坐标。
@Override
public void draw(Canvas canvas) {
// TODO Auto-generated method stub
super.draw(canvas);
Resources res = getResources();
Drawable drawable = res.getDrawable(R.drawable.subimage);
mBitmap = ((BitmapDrawable) drawable).getBitmap();
canvas.drawBitmap(mBitmap, 0, 0, null);
}
任何想法或帮助都将非常有用。
imageview.getLocationOnScreen(posXY);
? - aravindsagargetImageMatrix
并仔细阅读Matrix
API。 - pskinkTable 1
了吗?如果是,你有没有阅读关于ALL*dpi
限定符的内容? - pskink