0

新しい ImageViews を tableLayout に動的に追加したい。それらを動的に追加しながら、必要な列に配置したいと思います。行を8つの等しい列に分割するために、「android:layout_weight="7"」を使用しました。たとえば、新しい画像を 5 列目に追加したいとします。以下のコードは、画像を常に最初の列に配置します。どうすればそのようなことができますか?コードの何が問題になっていますか? 前もって感謝します..

マイアクティビティ:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_my_table);

    myTable=(TableLayout) findViewById(R.id.myTable);
    tableRow1=(TableRow) findViewById(R.id.tableRow1);

    iv_row1_column1=new ImageView(this);

    iv_row1_column1.setBackgroundResource(R.drawable.eight);
    tableRow1.addView(iv_row1_column1, 5);
}

XML ファイル:

<TableRow
    android:id="@+id/tableRow1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_weight="7" >
</TableRow>
4

1 に答える 1

0

これを行うには、GridView を使用できます。GridView のアダプターでは、表示する必要のない項目の可視性を GONE (convertView.setVisibility(View.GONE)) に設定できます。

例えば:-

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

            LayoutInflater mInflater = LayoutInflater.from(MyContext);

            if (convertView == null) {
                convertView = mInflater.inflate(R.layout.grid_item, null);

                ImageView iv= (ImageView) convertView.findViewById(R.id.grid_item_image);
            }

            iv.setImageBitmap(BitmapFactory.decodeResource(MyContext.getResources(), getIconId(position)));
            if(getIconId(position) == R.drawable.blank) {
                convertView.setVisibility(View.GONE);
            }
            return convertView;
        }
于 2013-05-07T18:07:07.080 に答える