Я работаю над функцией выбора нескольких макетов в Android-приложении.Как получить верхнюю и левую координаты видимого растрового изображения внутри ImageView в android
Мое требование - получить верхнюю и левую координаты растрового изображения после увеличения и ущипнуть изображение.
Я использую функцию TouchImageView для увеличения и перемещения.
Я пробовал так много решений SO, но не получил решение моего требования.
первая попытка -
public static int[] getBitmapOffset(ImageView img, boolean includeLayout) {
int[] offset = new int[2];
float[] values = new float[9];
Matrix m = img.getImageMatrix();
m.getValues(values);
offset[0] = (int) values[5];
offset[1] = (int) values[2];
if (includeLayout) {
ViewGroup.MarginLayoutParams lp = (ViewGroup.MarginLayoutParams) img.getLayoutParams();
int paddingTop = (int) (img.getPaddingTop());
int paddingLeft = (int) (img.getPaddingLeft());
offset[0] += paddingTop + lp.topMargin;
offset[1] += paddingLeft + lp.leftMargin;
}
return offset;
}
вторая попытка -
Rect r = img.getDrawable().getBounds();
int drawLeft = r.left;
int drawTop = r.top;
int drawRight = r.right;
int drawBottom = r.bottom;
Logger.logsInfo(TAG, "Focus drawLeft : " + i + " : " +drawLeft);
Logger.logsInfo(TAG, "Focus drawTop : " + i + " : " +drawTop);
Logger.logsInfo(TAG, "Focus drawRight : " + i + " : " +drawRight);
Logger.logsInfo(TAG, "Focus drawBottom : " + i + " : " +drawBottom);
Пожалуйста, дайте мне знать, что я делаю неправильно, потому что я работаю над этим из последних 3-х дней и до сих пор не сделано ,
Спасибо заранее. Предложения действительно оценены.
получить 'img.getDrawingCache() 'вы получите видимо. перед этим добавьте 'img.setDrawingCacheEnabled (true);' – Qamar
В первой попытке вы попытались использовать 'Matrix.postScale (yourScaleFactor, yourScaleFactor)'? –
Вы изменяете размер изображения по матрице. После того, как изображение 'postScale' получит новые координаты, я думаю, что matrix.mapRect поможет вам. Получите представление rect и карту с матрицей изображений, а затем слева укажите ваш ожидаемый x. – Qamar