Android垂直划分屏幕的一小部分

时间:2013-05-19 02:31:29

标签: android android-layout android-imageview

我有两个彼此相邻的图像。

当然我使用“dp”作为大小,在某些屏幕中图像变得很小,而在某些屏幕中却没有。这就是dp的作用。

我不知道我必须设置他们的尺码。 50dp,75dp或100dp ......而且我也不知道如何决定。

我只想将图片的大小设置为“屏幕尺寸/ 2”(因为我有两张图片)并且还希望它们缩放尺寸。我不能给高度。在任何分辨率下,他们必须将其宽度设置为“屏幕宽度/ 2”和高度与其宽度成比例。

这是我想要的图形:

instance

我该怎么办?

任何建议都将不胜感激。

2 个答案:

答案 0 :(得分:1)

如果您想将图片宽度设置为screen size / 2,请确保使用px代替dp,否则由于分辨率较高,其结果会因各种设备而异那些设备。 您可以通过以下代码获得宽度(以像素为单位)。

        DisplayMetrics dm = new DisplayMetrics();
        getWindowManager().getDefaultDisplay().getMetrics(dm);
        displayWidth = dm.widthPixels;

之后,您可以使用此设置图像宽度。

       image_view.getLayoutParams().width = displayWidth /2; 

希望这能解决您的问题。

实现此目的的另一种方法是在.xml文件中进行更改,如此

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:weightSum="2"
    android:orientation="horizontal" >


    <ImageView
        android:layout_width="0dp"
        android:layout_weight="1"
        ......
        ........./>

    <ImageView
        android:layout_width="0dp"
        android:layout_weight="1"
        ......
        ........./>

    </LinearLayout>

答案 1 :(得分:0)

android:layout_weight中使用linearLayout属性。在LinearLayout中,如果您使用相同的android:layout_weight设置两个imageview,则它将占用相同的空间。例如

< LinearLayout
........
.......
android:orientation="horizontal">

    <ImageView
        android:layout_width="0dip"
        android:layout_weight="1"
        ......
        ........./>

    <ImageView
        android:layout_width="0dip"
         android:layout_weight="1"
        ......
        ........./>

</LinearLayout>