2

リストビューで使用されるテキストビューサイズのランタイムを動的に変更したいが、テキストビューには何の影響も与えない 画面幅のランタイムを取得した後、画面の幅を取得した後に分割する別のレイアウトで、私のレイアウトでこのレイアウトを取り、テキストビューランタイムのサイズを変更する方法

ここに私のレイアウトを置きます

ホーム.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"
    android:orientation="vertical" >


    <LinearLayout 
                android:id="@+id/textlayout" 
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="horizontal"
                android:weightSum="12"
                android:layout_weight="1"
                android:gravity="center">

                <TextView
                    android:id="@+id/text1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:gravity="center"
                    android:background="@drawable/flightlist"
                    android:text="Destination"
                    android:textSize="17dp"
                    android:textStyle="bold" />

                <TextView
                    android:id="@+id/text2"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:gravity="center"
                    android:text="Flight"

                    android:textSize="17dp"
                    android:textStyle="bold" />

                <TextView
                    android:id="@+id/text3"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:gravity="center"
                    android:background="@drawable/flightlist"
                    android:text="Airlines"
                    android:textSize="17dp"
                    android:textStyle="bold" />

                <TextView
                    android:id="@+id/text4"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"

                    android:gravity="center"
                    android:text="Schedule"
                    android:textSize="17dp"
                    android:textStyle="bold" />

                <TextView
                    android:id="@+id/text5"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:gravity="center"
                    android:text="Term Gate"
                    android:textSize="17dp"
                    android:textStyle="bold"
                    android:background="@drawable/flightlist" />

                <TextView
                    android:id="@+id/text6"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:gravity="center"
                    android:text="Status"
                    android:textSize="17dp"
                    android:textStyle="bold" />

             </LinearLayout>

              <ListView
                    android:id="@+id/list"
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:layout_weight="10"
             >
             </ListView>




</LinearLayout>

list.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:weightSum="6" 
    android:gravity="center">

    <TextView
        android:id="@+id/textdestination"
        android:layout_width="183dp"
        android:layout_height="fill_parent"
        android:text="Destination"
        android:textSize="15dp"
        android:gravity="center"

        />

    <TextView
        android:id="@+id/textflight"
        android:layout_width="105dp"
        android:layout_height="fill_parent"
        android:text="Flight"
        android:textSize="15dp"
        android:gravity="center"
        android:background="@drawable/flightlist"
         />

    <TextView
        android:id="@+id/textairline"
        android:layout_width="185dp"
        android:layout_height="fill_parent"
        android:text="Airlines"
        android:textSize="15dp" 
        android:gravity="center"/>

            <TextView
                android:id="@+id/textschedule"
                android:layout_width="73dp"
                android:layout_height="fill_parent"
                android:text="Schedule"
                android:textSize="15dp"
                android:gravity="center"
                android:background="@drawable/flightlist"
            />

            <TextView
                android:id="@+id/texttermgate"
                android:layout_width="105dp"
                android:layout_height="fill_parent"
                android:text="Term Gate"
                android:textSize="15dp"
                android:gravity="center"
                />


            <TextView
                android:id="@+id/textstatus"
                android:layout_width="73dp"
                android:layout_height="fill_parent"
                android:text="Status"
                android:textSize="15dp" 
                android:gravity="center"
                android:background="@drawable/flightlist"/>

</LinearLayout>

HomeActivity.java

View inflater=getLayoutInflater().inflate(R.layout.list2, list, false);
    TextView textdestination=(TextView)inflater.findViewById(R.id.textdestination);
    textdestination.setHeight(50);
    textdestination.setWidth((textlayoutwidth*25)/100);
    textdestination.setTextSize(100);
4

2 に答える 2

1

次を使用して、実行時にテキストビューの幅と高さを変更できます。

textdestination.setWidth(pixels);
textdestination.setHeight(pixels); 
于 2012-12-24T07:38:00.020 に答える
1

ListView に使用するAdaptergetView()のメソッドでそれを行うことができます。

mInflater = (LayoutInflater) mActivity
            .getSystemService(Context.LAYOUT_INFLATER_SERVICE);

public View getView(int position, View convertView, ViewGroup parent) {

    ViewHolder holder;
    if (convertView == null) {

        holder = new ViewHolder();

        convertView = mInflater.inflate(R.layout.list, parent,
                false);
        holder.tv1 = (TextView) convertView
                .findViewById(R.id.textdestination);
        holder.tv2 = (TextView) convertView
                .findViewById(R.id.textflight);
        holder.tv3 = (TextView) convertView
                .findViewById(R.id.textairline);
        .......
        .......
        .......

        convertView.setTag(holder);
    } else {
        holder = (ViewHolder) convertView.getTag();
    }

    if(someCondition){

    holder.tv1.setLayoutParams(new LinearLayout.LayoutParams(50,50));
    holder.tv2setLayoutParams(new LinearLayout.LayoutParams(50,50));
    holder.tv3.setLayoutParams(new LinearLayout.LayoutParams(50,50));
    .....
    .....
    .....
    }

    return convertView;
}
于 2012-12-24T09:08:26.880 に答える