Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在imageview中将位图设置为特定大小_Java_Android_Bitmap_Imageview - Fatal编程技术网

Java 在imageview中将位图设置为特定大小

Java 在imageview中将位图设置为特定大小,java,android,bitmap,imageview,Java,Android,Bitmap,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,

尝试调整位图大小并设置为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的全高,宽度要大得多


如何设置放置位图的特定点?

来自的文档(FIT\u END使用的矩阵)

计算一个将保持原始src纵横比的比例,但是 还将确保src完全适合dst至少一个轴 (X或Y)将精确匹配。END将结果向右和向右对齐 dst的底部边缘

您可能需要为此使用一个自定义矩阵,可能是使用

例如:

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);
(我不确定您是否想要保持原始比例,如果您想要,请使用
setRectToRect()
FIT\u END