【发布时间】:2020-08-15 02:02:11
【问题描述】:
我想以编程方式设置支持所有屏幕尺寸的 textview 高度和宽度。
这是我的 activity.xml,其中有两个 LinearLayout。在第二个布局中,我动态放置了多个 textview 超过 10 或 12 个。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="60dp"
android:orientation="horizontal"
tools:context="com.example.sagargajera.setballs.MainActivity">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="6">
</LinearLayout>
<LinearLayout
android:id="@+id/layout_balls"
android:layout_width="fill_parent"
android:layout_height="40dp"
android:layout_gravity="center"
android:orientation="horizontal"
android:background="#3F51B5"
android:layout_weight="1">
<!--Here I tried to put layout and inside this layout I want to put textview. -->
</LinearLayout>
</LinearLayout>
这是我的 MainActivity.java,我在其中尝试根据我的循环创建布局和文本视图。
package com.example.sagargajera.setballs;
import android.graphics.Color;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.DisplayMetrics;
import android.view.Gravity;
import android.widget.LinearLayout;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
LinearLayout layout;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
layout=(LinearLayout)findViewById(R.id.layout_balls);
// DisplayMetrics displayMetrics = getResources().getDisplayMetrics();
// int width = displayMetrics.widthPixels;
// int height = displayMetrics.heightPixels;
for(int i=1;i<=12;i++){
// LinearLayout.LayoutParams param1=new LinearLayout.LayoutParams(width, (height/7));
LinearLayout.LayoutParams param1=new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.FILL_PARENT);
LinearLayout layout_1=new LinearLayout(this);
layout_1.setOrientation(LinearLayout.HORIZONTAL);
layout_1.setLayoutParams(param1);
layout_1.setGravity(Gravity.CENTER);
layout_1.setBackgroundColor(Color.parseColor("#f32f32"));
LinearLayout.LayoutParams params=new LinearLayout.LayoutParams(20,20);
param1.weight=1;
TextView tv=new TextView(this);
tv.setGravity(Gravity.CENTER);
tv.setLayoutParams(params);
tv.setText("" + i);
tv.setBackgroundDrawable(getResources().getDrawable(R.drawable.cicle));
tv.setTextColor(Color.parseColor("#FFFFFF"));
layout_1.addView(tv);
layout.addView(layout_1);
}
}
}
这是我的截图:
上面创建布局和文本视图的代码。在动态布局中设置了一个 Textview,在我的 xml 特定布局(即 layout_balls)中设置了动态布局。
问题是当我在小型设备上运行这个应用程序时,它给了我完美的输出,但是当我在大型设备或平板电脑上运行这个应用程序时,输出却出乎意料。
【问题讨论】:
标签: android