我在xml布局文件中有一个布局
在运行时,我想创建2个文本视图,然后添加到布局中
=>我不能按照我的具体尺寸设置2个文本视图的宽度/高度
如果我设置了MATCH_PARENT
,那就没问题了
如果我按任何特定尺寸设置,则仅WRAP_CONTENT
XML布局文件:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.androidsnipcode.MainActivity$PlaceholderFragment"
android:orientation="vertical"
android:id="@+id/mylayout">
</LinearLayout>
Dimens.xml:
<resources>
<!-- Default screen margins, per the Android Design guidelines. -->
<dimen name="activity_horizontal_margin">16dp</dimen>
<dimen name="activity_vertical_margin">16dp</dimen>
<dimen name="heigh">300dip</dimen>
<dimen name="width">600dip</dimen>
</resources>
Activity.java的onCreate():
LinearLayout layout = (LinearLayout) findViewById(R.id.mylayout);
LinearLayout.LayoutParams layoutparams1 = new LinearLayout.LayoutParams(
LayoutParams.MATCH_PARENT, R.dimen.heigh);
TextView tv = new TextView(this);
tv.setLayoutParams(layoutparams1);
tv.setText("hello 1");
tv.setBackgroundColor(Color.CYAN);
layout.addView(tv);
LinearLayout.LayoutParams layoutparams2 = new LinearLayout.LayoutParams(
R.dimen.width, LayoutParams.MATCH_PARENT);
TextView tv2 = new TextView(this);
tv2.setLayoutParams(layoutparams2);
tv2.setText("hello 2");
tv2.setBackgroundColor(Color.MAGENTA);
layout.addView(tv2);
屏幕截图:第一个textview的高度和第二个textview的宽度不符合我的预期(它的包装内容不是我的特定尺寸)
答案 0 :(得分:11)
你可以这样做。宽度/高度应为像素值。
ViewGroup.LayoutParams layoutParams = new ViewGroup.LayoutParams(
getResources().getDimensionPixelSize(R.dimen.width),100);
textView.setLayoutParams(layoutParams);
您可以从维度资源中读取或硬编码像素值。