刚发了个关于设置屏幕大小的问题,但是没有说清楚,在这里再描述下。
ViewPager 里边添加了4个fragment,每个fragment显示一个listview的内容。
继承 Baseadapter。 在getview()里边
AbsListView.LayoutParams lp = new AbsListView.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT,剩下屏幕的高度/10);
convertView.setLayoutParams(lp); //这样屏幕就能显示10行list的内容
现在就是想 剩下屏幕高度 = screenheight - screenheight /10 -screenheight/12 - screenheight/1000 ;
这样就要设置布局的高度了。即以下所说的。
请问,如何在代码中设置 布局的高度。
比如说 通过以下代码获取屏幕高度后:
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
int screenheight = dm.heightPixels;
screenheight /10; screenheight/12 screenheight/1000
为了自适应不同的手机屏幕大小,现在想在代码中以下设置布局的大小。
具体想
在代码中设置布局的大小:
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="50dp"
改为
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="screenheight /10"
把
<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="fill_parent"
android:layout_height="18sp"
改为
<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="fill_parent"
android:layout_height="screenheight/12 "
把
<LinearLayout
android:layout_width="match_parent"
android:layout_height="2dip"
改为为
<LinearLayout
android:layout_width="match_parent"
android:layout_height="screenheight/1000"
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#FFFFFF"
android:orientation="vertical" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="50dp"
android:layout_gravity="center"
android:background="#CDAD00"
android:orientation="horizontal" >
<ImageView
android:id="@+id/imageText1"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_marginLeft="0.0sp"
android:src="@drawable/btn_back" />
<EditText
android:id="@+id/editView1"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_marginBottom="10.0dip"
android:layout_marginTop="10.0dip"
android:layout_weight="1.0"
android:background="@drawable/edittext_style" />
<ImageView
android:id="@+id/imageText2"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:src="@drawable/btn_search01" />
</LinearLayout>
<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="fill_parent"
android:layout_height="18sp"
android:background="@color/coral"
android:paddingBottom="10dip"
android:paddingTop="10dip" >
<TextView
android:id="@+id/textview_essence"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1.0"
android:gravity="center"
android:text="@string/essence"
android:textColor="@color/white"
android:textSize="18sp" />
<TextView
android:id="@+id/textview_policy"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1.0"
android:gravity="center"
android:text="@string/policy"
android:textColor="@color/lightwhite"
android:textSize="18sp" />
<TextView
android:id="@+id/textview_comment"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1.0"
android:gravity="center"
android:text="@string/forum"
android:textColor="@color/lightwhite"
android:textSize="18sp" />
<TextView
android:id="@+id/textview_data"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1.0"
android:gravity="center"
android:text="@string/data"
android:textColor="@color/lightwhite"
android:textSize="18sp" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="2dip"
android:layout_gravity="bottom"
android:orientation="vertical"
>
<ImageView
android:id="@+id/bottom_line"
android:layout_width="40dip"
android:layout_height="2dip"
android:layout_marginLeft="20dip"
android:scaleType="matrix"
android:src="#8EE" />
</LinearLayout>
<android.support.v4.view.ViewPager
android:id="@+id/forumpager"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_weight="0.67"
android:background="#FFFFFF"
android:flipInterval="30"
android:persistentDrawingCache="animation" />
</LinearLayout>
请问 在代码里边设置意思高度的属性应该怎么处理呢? 麻烦会的朋友详细说明下吧,谢啦。
图1 所示,就是要设置 L 和 h高度 和m 的高度,就是为了后面获取 剩下屏幕的高度,比如显示 listview的10行,现在出现
最后显示半行 正常要显示一整行的。
------解决思路----------------------
我觉得楼主思考的方向是错的 虽然没看懂要赶啥
------解决思路----------------------
临时的办法都是在代码里而不是布局文件获取屏幕宽高,设置相应控件属性;很多厉害点的应用会采用2种方式:一是写不同的layout文件,比如layout-mdp,layout-hdp等等,每个里面都有同一个布局文件但是数值不同;二是在不同的values里定义一些代表尺寸,文字大小的属性,在layout使用这些属性,那么调用时也会自动适配。
本人比较懒,一般都在代码里改了,也许哪天找到别人写好的适配资源文件就不用这么麻烦了