尝试调整位图大小并设置为imageview的特定部分。 imageview是方形的,我希望在右下角有位图。宽度为imageview的10%,高度为30%。
int w = imageview.getWidth();
Bitmap bm = BitmapFactory.decodeResource(getResources(), R.drawable.vertical_bar_green);
imageview.setImageBitmap(Bitmap.createScaledBitmap(bm, w/10, w*30/100, false));
imageview.setScaleType(ScaleType.FIT_END);
结果是位图是imageview的整个高度,宽度要大得多。
如何设置特定点来放置位图?
答案 0 :(得分:0)
来自END的文档(FIT_END
使用的矩阵)。
计算将保持原始src宽高比的比例,但是 还将确保src完全适合dst。 至少一个轴 (X或Y)将完全适合。 END将结果与右对齐 dst的底边。
您可能希望使用自定义矩阵,可能使用setRectToRect()
构建。
例如:
Matrix matrix = new Matrix();
RectF from = new RectF(0, 0, bm.getIntrinsicWidth(), bm.getIntrinsicHeight());
RectF to = new RectF(view.getWidth() * 0.9, view.getHeight() * 0.7, view.getWidth(), view.getHeight());
matrix.setRectToRect(from, to, Matrix.ScaleToFit.FILL);
view.setScaleType(ScaleType.MATRIX);
view.setImageMatrix(matrix);
(我不确定您是否要保留原始比例,如果需要,请使用FIT_END
作为setRectToRect()
。