Android以编程方式更改视图的宽度

时间:2013-02-23 05:59:38

标签: android android-layout android-listview

我想将listView的宽度设置为移动屏幕宽度的40%。由于不同手机中40%的像素不同,我将无法在xml布局文件中设置宽度。有没有办法以编程方式为listView

设置宽度

4 个答案:

答案 0 :(得分:0)

实际上,您通常可以使用layout_weight以XML格式执行此操作。有关说明,请参阅Linear Layout guide。要记住以下几点:

  1. 请确保将尺寸(水平布局layout_width,垂直布局layout_height)设置为0dp,以免影响动态布局。
  2. 您通常会在布局中的其他视图上设置权重,以便占用剩余的60%。但是,如果没有,您可以定义weight sum

答案 1 :(得分:0)

Display display = getWindowManager().getDefaultDisplay();
int width = (display.getWidth()*40)/100;

获取宽度后,必须通过上面的代码获得屏幕宽度大小,你必须通过setparam设置代码。

答案 2 :(得分:0)

您可以通过编程方式获得屏幕宽度,然后获得屏幕宽度的40%并设置为ListView。如果您想使用xml执行此操作,请使用LinearLayout并设置android:weightSum这个然后使用weight.using这种方式你可以很容易地做到这一点。

获得40%的屏幕重量

  Display  display= ((WindowManager)getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
    int width = (display.getWidth()*40)/100;

为xml中的视图设置权​​重

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#ffffff"
    android:orientation="vertical"
    android:weightSum="100" >
   <Button android:layout_width="wrap_content"
   android:layout_height="0dp"
   android:layout_weight="50"
   android:text="button1"/>
  <Button android:layout_width="wrap_content"
  android:layout_height="0dp"
  android:layout_weight="50"
  android:text="button2"/>
</LinearLayout>

答案 3 :(得分:0)

您在观点及其参数方面存在概念错误。您可以以编程方式设置不同类型的宽度,也可以在xml布局中设置它。以编程方式将布局参数设置为视图的优点就是在运行时更改视图布局参数的可能性。 您的问题的解决方案很简单,您只需将listView放在LinearLayout中并将其权重设置为.4