【问题标题】:Set Bitmap to specific size inside imageview在imageview中将位图设置为特定大小
【发布时间】:2014-06-12 07:44:14
【问题描述】:

尝试调整位图大小并设置为图像视图的特定部分。图像视图是方形的,我希望在右下角有位图。宽度为 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的全高,而宽度要大得多。

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

【问题讨论】:

    标签: java android bitmap imageview


    【解决方案1】:

    来自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())。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-02-25
      • 1970-01-01
      • 1970-01-01
      • 2011-11-25
      • 1970-01-01
      • 1970-01-01
      • 2018-12-10
      相关资源
      最近更新 更多