2014-06-11 53 views
0

试图调整位图大小并将其设置为imageview的特定部分。 imageview是方形的,我希望在右下角有位图。宽度为imageview的10%,高度为30%。将位图设置为imageview内的特定大小

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

ENDFIT_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_ENDsetRectToRect())。

+0

工程很棒。谢谢。 – user3528766

相关问题