2011-12-29 55 views
2

私は自分のXMLにTableLayoutを持っています。そのTableLayoutにImageViewを使ってTableRowを動的に追加したいと思います。私が今までに持っているのはこれです:ImageViewをTableRowに動的に追加する

TableRow tr = new TableRow(this); 
ImageView imgView = new ImageView(this); 
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(
          LayoutParams.WRAP_CONTENT, 
          LayoutParams.WRAP_CONTENT); 
imgView.setLayoutParams(lp); 
imgView.setImageDrawable(getResources().getDrawable(R.drawable.icon_test)); 
tr.addView(imgView); 
tlCollection.addView(tr); 

私は間違っていますか?私は同じのTableRowにのTextViewを追加したい場合は、それが動作しますが、ImageViewのを追加することはできません。..

のTextViewを追加するためのコード:

TextView myTextView = new TextView(this); 

myTextView.setLayoutParams(new TableRow.LayoutParams(
TableRow.LayoutParams.FILL_PARENT,TableRow.LayoutParams.WRAP_CONTENT)); 
myTextView.setText("Test"); 
tr.addView(myTextView); 

任意のアイデア?

答えて

0

私はLayoutInflaterを使用して、それを修正:

LayoutInflater inflater = getLayoutInflater(); 

TableRow row = (TableRow)inflater.inflate(R.layout.collection_row, tlCollection, false); 

//fill textview 
TextView content = (TextView)row.findViewById(R.id.txtCollection); 
content.setText("Test"); 

//fill imageview 
ImageView myImgView = ImageView)row.findViewById(R.id.imgCollection);   
myImgView.setImageDrawable(getResources().getDrawable(R.drawable.my_icon)); 

//add row to tablelayout 
tlCollection.addView(row); 
0

レイアウトパラメータと関係があると思います。両方のディメンションをWRAP_CONTENTに設定していますが、イメージビューには「コンテンツ」自体はありません。ソースビューは描画可能です。 adjustViewBounds、setScaleType、およびレイアウトパラメータで試してみてください。 TextViewを追加できるという例では、幅をFILL_PARENTに設定していますか?

このようにImageViewを動的に追加する私のオープンプロジェクトでは、私がFILL_PARENTを両方向で使用していたケースがありました。私は全く同じことをしていないので、それはあなたのためにはうまくいかないかもしれませんが、上記の2つの設定だけでなく、これらの設定で遊ぶ価値があります。

+0

はどちらか動作しません使用して固定し、同じ問題を抱えていました。両方ともFILL_PARENTに設定しましたが、画像は表示されません。他のアイデア?ポイント私はXMLでのTextViewとImageViewのでのTableRowを追加するとき、それは作業を行い、次のとおりです。 <のTextViewのアンドロイド:テキスト= "テスト" /> harmjanr

0

この

ImageViewのimgView =新しいImageViewの(これを)してみてください。 imgView.setImageBitmap(BitmapFactory.decodeResource(getResources()、R.drawable.ic_launcher));

tr.addView(imgView);

0

私は現在、以下のコード

CandFlag =new ImageView(this); 
CandFlag.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT, 
        TableRow.LayoutParams.WRAP_CONTENT)); 

CandFlag.setImageBitmap(BitmapFactory.decodeResource(getResources(), R.drawable.flag)); 


LayoutParams layoutParams = (LayoutParams) CandFlag.getLayoutParams(); 
      layoutParams.width = 75; 
      layoutParams.height = 75; 
      CandFlag.setLayoutParams(layoutParams); 

Tablerow.addView(CandFlag); 
関連する問題