0

listView に記事のリストがあり、左側にテキスト、右側に画像があります。記事に画像がない場合は、テキストを全角にしたいと思います (marginRight を 60 dp にするのではなく)。

私のnoob-javaの思考プロセスは次のとおりです。すでにループして画像があるかどうかを確認しています...(ある場合は、表示される画像を変更します)そのループ内で、Javaを使用してXMLを変更できますかimageView を追加または削除し、余白を追加または削除する私のビューは?

画像を繰り返して変更するために使用しているコード:

    ImageLoader imageLoader = ImageLoader.getInstance();

    imageLoader.displayImage("", viewHolder.thumbView); //clears previous one
    if(article.filepath != null && article.filepath.length() != 0) {
        imageLoader.displayImage(
            "http://img.mysite.com/processes/resize.php?image=" + article.filepath + "&size=100&quality=70",
            viewHolder.thumbView
            );
    }

私の「article_entry_list_adapter.xml」:

<?xml version="1.0" encoding="utf-8"?>

<!-- Layout for individual news entries in a list -->
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="10dp" >

<!-- Title of the news entry -->
<TextView
    android:id="@+id/article_title"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_marginRight="60dp"
    android:textSize="13sp"
    android:textStyle="bold"
    android:textColor="@drawable/list_title_selector" android:typeface="serif"/>

<!-- Subtitle contains author and date -->
<TextView
    android:id="@+id/article_subtitle"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginRight="60dp"
    android:layout_alignLeft="@id/article_title"
    android:layout_below="@id/article_title" 
    android:textSize="11sp"
    android:textColor="@drawable/list_subtitle_selector" />

<com.sltrib.views.WebImageView
    android:id="@+id/article_thumbnail"
    android:layout_width="50dp"
    android:layout_height="50dp"
    android:adjustViewBounds="true"
    android:layout_alignParentRight="true"
    android:background="@color/super_light_gray"
    android:padding="1dp"
    android:scaleType="centerCrop" android:cropToPadding="true"/>

</RelativeLayout>
4

3 に答える 3

2

xml レイアウトを次のように変更することをお勧めします。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="10dp" >

<!-- Title of the news entry -->

<com.sltrib.views.WebImageView
    android:id="@+id/article_thumbnail"
    android:layout_width="50dp"
    android:layout_height="50dp"
    android:layout_alignParentRight="true"
    android:adjustViewBounds="true"
    android:background="@color/super_light_gray"
    android:cropToPadding="true"
    android:padding="1dp"
    android:scaleType="centerCrop"
    />

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginRight="5dip"
    android:layout_toLeftOf="@id/article_thumbnail"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/article_title"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Titol"
        android:textColor="@drawable/list_title_selector"
        android:textSize="13sp"
        android:textStyle="bold"
        android:typeface="serif" />

    <TextView
        android:id="@+id/article_subtitle"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Subtitol"
        android:textColor="@drawable/list_subtitle_selector"
        android:textSize="11sp" />

</LinearLayout>

次に、画像がない場合は、WebImageView可視性を に設定するだけGONEで、テキストは親の幅になります。

あなたの例では:

viewHolder.thumbView.setVisibility(View.VISIBLE); //to show the image
viewHolder.thumbView.setVisibility(View.GONE); //to hide the image
于 2012-07-13T21:28:23.837 に答える
0

article_thumbnail の setVisiblity(VIEW.Gone) をループしている最中。

TextView textView = (TextView) findViewById(R.id.textView1);

    LinearLayout.LayoutParams llp = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
    llp.setMargins(50, 0, 0, 0); // llp.setMargins(left, top, right, bottom);
    textView.setLayoutParams(llp);
于 2012-07-13T21:11:20.210 に答える
0

viewGroup を変更する (imageView の可視性を GONE に設定し、プログラムでマージンを追加する) か、別の xml をインフレートすることを選択できます。あなたがしたいように=)

于 2012-07-13T21:11:29.013 に答える