我想以編程方式設置支持所有屏幕大小的textview高度和寬度。如何在android中以編程方式設置支持所有屏幕大小的佈局高度和寬度?
這是我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其中我試圖根據我的循環來創建佈局和TextView的。
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);
}
}
}
這裏是我的screenshort 以上這創造佈局以及TextView的代碼。 Textview在動態佈局中設置,動態佈局在我的xml特定佈局layout_balls中設置。
問題是,當我運行這個程序,在小型設備它給我完美的輸出,但是當我運行這個程序,在大型設備或平板電腦的輸出是出乎意料的。
請幫我解決了這個問題很長一段時間。
你做了偉大的工作,對我來說。非常感謝。 –