如何固定图像比例

时间:2014-10-14 11:07:12

标签: android scale

我希望在所有屏幕上都有一个固定x / y比率的ImageView。 例如着名的16/9比率。 而且我也希望ImageView尽可能大。 我怎么能在android中做到这一点? 非常感谢。

2 个答案:

答案 0 :(得分:1)

上述答案将改变宽高比。

仅通过修改xml布局文件无法实现目标。您必须在Java代码中执行此操作。

基本步骤是:

  1. 将您的图片文件读入位图,并获取位图的初始宽度高度以及宽高比
  2. 分别计算x和y维度的缩放因子,并使用两个因子中较小的一个来缩放图像

    factorX= ScreenWitdhInPixel/ImgWidth
    factorY= ScreenHeightInPixel/ImgHeight
    factor= (factorX<factorY?factorX:factorY)

  3. 使用步骤2中计算的因子值

    来缩放图像

    Matrix matrix = new Matrix(); matrix.postScale(factor, factor); Bitmap scaledBitmap = Bitmap.createBitmap(bitmap, 0, 0, width, height, matrix, true);

  4. 请参阅此帖子以获取完整示例:ImageView fit without stretching the image

答案 1 :(得分:0)

你必须设置android:scaleType =&#34; fitXY&#34;到你的imageView。

如果您希望ImageView与其父级一样大,您可以编写以下代码行:

android:layout_width="match_parent"
android:layout_height="match_parent"