我想动态地将新的ImageView添加到tableLayout。在动态添加它们时,我想将它们放在我想要的任何列中。我使用" android:layout_weight =" 7""为了将行分成8个相等的列。例如,我想将新图像添加到第5列。下面的代码将Image始终放在第一列。我该怎么办?代码有什么问题?提前谢谢..
MyActivity:
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>
答案 0 :(得分: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;
}