Android的动态图像大小

时间:2014-09-03 04:07:30

标签: android image imageview

我面临着从Android手机到平板电脑保留相同布局的问题。

原因是因为我的大多数图像都是固定大小的。因此,从手机换成平板电脑时会出现问题。

我的活动布局是这样的。

<relativelayout> - with match_parent for both width and height
     <linearlayout> - with match_parent for both width and height
          <linearlayout> - with match_parent for for width only and match_content for height
                <imageview> - fixed size - 94 dp and 32 dp

是否有可能做类似于给出宽度百分比的东西,就像我们在html中所做的那样,而不是修复dp?这样它就可以自动调整到父宽度。

谢谢!

3 个答案:

答案 0 :(得分:6)

请尝试这样的事情:

第1步:使用此代码动态计算设备屏幕的高度和宽度。

DisplayMetrics displaymetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);

int screenHeight = displaymetrics.heightPixels;
int screenWidth = displaymetrics.widthPixels;

第2步:使用此代码在您的活动或片段中获取ImageView的引用

ImageView myImageView = (ImageView) findViewById(R.id.your_image_view);

第3步:现在根据屏幕的高度和宽度计算ImageView的高度和宽度。

假设您想要与屏幕对应的10%高度ImageView; 然后图像高度应为

int imgHeight =  screenHeight* 0.10 // 10% of screen.

以同样的方式宽度你想要25% 那应该是:

int imgWidth =  screenWidth* 0.25 // 25% of screen.

第4步:最后通过此代码设置ImageView的高度和宽度。

myImageView.getLayoutParams().height = imgHeight;
myImageView.getLayoutParams().width = imgWidth;

希望它会对你有所帮助。

答案 1 :(得分:0)

如果在所有图像中设置相同的宽度

 <LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal" >

    <ImageView
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:src="@drawable/ic_launcher" />

    <ImageView
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:src="@drawable/ic_launcher" />

    <ImageView
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:src="@drawable/ic_launcher" />
</LinearLayout>

答案 2 :(得分:0)

  1. 首先尝试使用与资源文件夹中不同大小的图像。
  2. 您还可以使用match-parent和wrap-content。
  3. 我认为制作不同尺寸的相同图像并根据它们的尺寸将它们设置为res / drawable(hdpi,mdpi等)将起作用。因为android会根据设备dpi自动从这些文件夹中选择图像。