0

私のコードでは、画像の下に画像とテキストを追加しています。ImageView と TextView を保持する RelativeLayout を持つ XML があります。この xml レイアウトを動的に拡張し、ルート XML にある LinearLayout に追加しています。私が直面している問題は、画面が (幅で) 保持できる画像を追加すると、最後の画像が小さくなることです。同じ構造を持ち、新しい行を追加できるようにしたいです。たとえば、各行に最大 4 つの画像を表示したいのですが、どうすればこれを達成できますか?

以下は私のルートxmlレイアウトです:

<?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>

そして、これが私のxmlレイアウトで、imageviewとtextviewがあります:

<?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コード:

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);
    }
4

1 に答える 1

0

の使用を検討してくださいGridView。チュートリアルは、Android Developer ResourcesHelloViewsで入手できます

于 2012-05-09T09:34:09.470 に答える