Нарисуйте растровое изображение в Custom ImageView и получите координаты ImageView независимо от устройства
Я хочу получить координатыImageView
, Независимо от размера устройства.
Есть ли возможный способ !!
Я пытался создать определенный размер дляImageView
, Даже определенный размер дляParent View
также, но это не работает.
Я пробовал следующие возможные способы.
int[] posXY = new int[2];
imageview.getLocationOnScreen(posXY);
int MoveX = posXY[0];
int MoveY = posXY[1];
Я тоже пробовал с матрицей, но не работает.
Matrix m = imageview.getImageMatrix();
Пробовал приведенный ниже код, но он тоже не работает. !!
Мне нужно получить одинаковые {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);
}
Любая идея или помощь будут действительно полезны.