2012-05-09 23 views
0

私のコードでは、画像の下に画像とテキストを追加します。私はImageViewとTextViewを保持するRelativeLayoutを持つXMLを持っています。 動的に私はこのXMLレイアウトを膨らませて、それをルートXMLにあるLinearLayoutに追加しています。私が直面している問題は、画面に(幅で)保持できる画像を追加すると、最後の画像が小さくなるということです。私は同じ構造を持ち、新しい行を追加することができたいと思っています。例えば、各行に最大4枚の画像を持たせたいのですが、どうすればいいですか?Android - 動的に複数のビューを追加する

以下

私のルートXMLレイアウトです:

:これを膨らませる

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="vertical" 
android:id="@+id/root" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content"> 
<ImageView 
    android:id="@+id/image" 
    android:layout_width="35dip" 
    android:layout_height="35dip" 
    android:layout_marginLeft="3dip" 
    android:src="@drawable/default_profile_picture"/> 
<TextView 
    android:id="@+id/username" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_below="@+id/image" 
    android:layout_marginTop="2dip" 
    android:layout_marginLeft="3dip" 
    android:textSize="9sp" 
    android:text="Damian M."/> 
</RelativeLayout> 

とJavaコード:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="vertical" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content"> 
<TextView 
    android:id="@+id/text" 
    android:text="Friends who likes this:" 
    android:layout_height="wrap_content" 
    android:layout_width="wrap_content" 
    android:layout_centerHorizontal="true"/> 
<LinearLayout 
    android:id="@+id/wrapper" 
    android:layout_below="@+id/text" 
    android:layout_marginTop="5dip" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_centerHorizontal="true" 
    android:orientation="horizontal"/> 
</RelativeLayout> 

そして、ここでは、私はImageViewのとのTextViewを持っている私のxmlレイアウトです

LayoutInflater inflater = (LayoutInflater) context 
      .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    inflater.inflate(R.layout.likes_view, this, true); 
    LinearLayout wrapper = (LinearLayout) findViewById(R.id.wrapper); 
    TextView text = (TextView) findViewById(R.id.text); 
    text.setTypeface(tf); 
    if(users.isEmpty()){ 
     text.setVisibility(View.INVISIBLE); 
    } 

    RelativeLayout friendsView; 
    ImageView image; 
    TextView username; 
    for(User user : users){ 
     friendsView = (RelativeLayout) View.inflate(ctx, R.layout.likes_view_friends, null); 
     image = (ImageView) friendsView.findViewById(R.id.image); 
     if(user.getImage() != null){ 
      image.setImageBitmap(user.getImage()); 
     } 
     username = (TextView) friendsView.findViewById(R.id.username); 
     username.setTypeface(tf); 
     String firstLetterLastName = user.getLastName().substring(0,1); 
     StringBuilder dotLastName = new StringBuilder(firstLetterLastName).append(".");   
     username.setText(user.getFirstName() + " " + dotLastName.toString()); 
     wrapper.addView(friendsView); 
    } 

答えて

0

GridViewを使用することを検討してください。チュートリアルはAndroidデベロッパーリソースで利用可能ですHello Views

+0

私はこれをリストビュー内でやっています。 GridViewをListViewの中に置くことはできますか? – Carnal

+0

はい。しかし、2つのアダプターを管理する必要があります。 1つは 'ListView'用、もう1つは' GridView'用です。 – Rajesh

+0

あなたの言っていることが分かります。しかし、GridViewをListViewのアイテムとして動作させたいので、ListViewをスクロールすると、ピクチャもListViewと共にスクロールする必要があります。あなたは、2つのスクロールビュー、1つはリストビュー、もう1つはグリッドビューになることを提案します。 – Carnal

関連する問題