代码之家  ›  专栏  ›  技术社区  ›  Shashank Setty

如何为ImageView设置最小可伸缩值?

  •  0
  • Shashank Setty  · 技术社区  · 7 年前

    假设我的可绘制文件夹中有一个400x400分辨率的图像“A”,我的ImageView源设置为A,此ImageView位于线性布局或卡布局内。

    我想根据设备缩放图像,对于4英寸的设备我想说是120dp x 120dp,但我想根据显示器的大小缩放到更大的像素。

    enter image description here

    3 回复  |  直到 7 年前
        1
  •  0
  •   Daniel Reyhanian    7 年前

    DisplayMetrics displayMetrics = new DisplayMetrics();
    getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
    int width = displayMetrics.widthPixels;
    int height = displayMetrics.heightPixels;
    

        2
  •  0
  •   Shashank Setty    7 年前

        3
  •  0
  •   Chetan Joshi weird    7 年前

    Bitmap Aspect Ratio

    ImageView

    Height Width

    New Height = NewWidth * AR;
    NewHeight = 200 * 0.75;
    NewHeight = 150 ;
    

    Online Image Aspect Ratio Calculator

    public static Bitmap scaleBitmap(Bitmap bitmap, int wantedWidth, int wantedHeight) {
    Bitmap output = Bitmap.createBitmap(wantedWidth, wantedHeight, Config.ARGB_8888);
    Canvas canvas = new Canvas(output);
    Matrix m = new Matrix();
    m.setScale((float) wantedWidth / bitmap.getWidth(), (float) wantedHeight / bitmap.getHeight());
    canvas.drawBitmap(bitmap, m, new Paint());
    return output;
    }