2017-03-23 14 views
0

私はプログラム的に生成したいImageviewとtextviewを中央ボトムで横方向にスクロールするLinearLayout。私はプログラム的に生成したいImageViewとTextView、中央ボトムの水平スクロールLinearLayout

これは私のJavaコードです。:

 LinearLayout rec=(LinearLayout)findViewById(R.id.hori_recom); 

    //ViewGroup.LayoutParams params=new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); 
     ViewGroup.LayoutParams params=new ViewGroup.LayoutParams(450,450); 
     ViewGroup.LayoutParams params1=new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,ViewGroup.LayoutParams.WRAP_CONTENT); 
     // for(int g=0;g<5;g++) 
     for(int g=0;g<imgpath_orignal.size();g++) 
     { 

     ImageView recimg=new ImageView(Details.this); 
     recimg.setId(g+1); 
     recimg.setPadding(25,0,0,0); 
     Picasso.with(Details.this).load(al_gallary_img.get(g)).placeholder(R.drawable.logo) 
       .error(R.drawable.logo).into(recimg); 
     recimg.setLayoutParams(params); 
     TextView txtlabel=new TextView(Details.this); 
     txtlabel.setId(g+1); 
     txtlabel.setGravity(Gravity.CENTER|Gravity.BOTTOM); 
     txtlabel.setPadding(15,15,15,15); 
     txtlabel.setText(""+al_img_caption.get(g)); 
     txtlabel.setLayoutParams(params1); 
     rec.addView(txtlabel); 
     rec.addView(recimg); 

これは私のXMLです:

  <HorizontalScrollView 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:scrollbars="none"> 


       <LinearLayout 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:orientation="horizontal" 
        android:id="@+id/hori_recom" 
        android:layout_marginTop="10dp"/> 

     </HorizontalScrollView> 

問題は、私は私のImageview.pleaseヘルプ

の下部中央で私のTextViewを取得していない午前です

答えて

0

一つでください - 1つのレイアウトであなたのImageViewTextViewを組み合わせ
row_layoutとしてこのレイアウトを言います。それはImageViewの下にTextViewのbottamでのTextViewとしてのに出力を与えることなく、

for(int g=0; g<imgpath_orignal.size(); g++) { 
    View v = LayoutInflater.from(context).inflate(R.layout.row_layout, parent, false); 
    // Do your layout binding stuff over here.. 
    ImageView ivPhoto = (ImageView) v.findViewById(R.id.imageview_id); // Give reference 
    Picasso.with(context).load(url).into(ivPhoto); // Loading image using Picasso 
    rec.addView(v); 
} 
+0

私はアンドロイド開発で新しいですImageviewとTextviewを新しい膨らんだレイアウトにバインドする方法をお勧めします。 – Abhijeet

+0

私はこのようなことをしました:LayoutInflater inflater = Details.this.getLayoutInflater(); ビューrowView = inflater.inflate(R.layout.row_layout、null、true); LinearLayout view_custom =(LinearLayout)findViewById(R.id.view_custom); view_custom.addView(recimg); view_custom.addView(txtlabel);しかしそれはクラッシュする – Abhijeet

+0

私は 'findViewById()'のやり方を見て、私はコードを編集しました。 – Wizard

0

これは、layout_gravityの代わりにTextViewの重力をcenter_bottomとして設定したためです。

だけ

txtlabel.setGravity(Gravity.CENTER|Gravity.BOTTOM); 

を削除し、代わりの

ViewGroup.LayoutParams params1 = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,ViewGroup.LayoutParams.WRAP_CONTENT);`

この

LinearLayout.LayoutParams params1 = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,ViewGroup.LayoutParams.WRAP_CONTENT); params1.gravity = Gravity.CENTER|Gravity.BOTTOM;

これはプログラム的layout_gravityを設定する方法ですを行います。

+0

-

<LinearLayout .... .... <ImageView ... ... /> <TextView ... ... /> </LinearLayout> 

HorizontalScrollViewにあるLinearLayoutにレイアウトを追加します。 – Abhijeet

関連する問題