2

以下の私のコードでは、アイテムに写真があればいいでしょう。ただし、空の場合、アイテムの画像はサイズ 70 dp の空のボックスに見えます。アイテムに画像が含まれていない場合は、空のボックスが自動的に TextView で満たされるので、空の場合は画像が ImageView ではなく、TextView のみのようになります。ImageView の幅サイズを設定しようとしました android:layout_width="wrap_content" 希望どおりに機能しましたが、画像のサイズが乱れました。ワイドとスモールがあります。そのため、フラットに見えるように 70 に設定しました。

これは私のコードです:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="?android:attr/listPreferredItemHeight"
    android:padding="6dip" >

    <ImageView
        android:id="@+id/logo_article"
        android:layout_width="70dp"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentTop="true"
        android:layout_marginRight="6dip" />

    <TextView
        android:id="@+id/title_article"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_alignWithParentIfMissing="true"
        android:layout_centerVertical="true"
        android:layout_toRightOf="@id/logo_article"
        android:gravity="center_vertical"
        android:text="Title Article" />

</RelativeLayout>

データベースからアイテムを取得し、Java のコードである単純なアダプターに格納します。

String[] from = { "title", "logo" };
int[] to = { R.id.title_article, R.id.logo_article };
SimpleAdapter adapter = new SimpleAdapter(getBaseContext(),listkatdb,R.layout.per_item_list, from, to);
kategoriListView.setAdapter(adapter);
adapter.notifyDataSetChanged();

ありがとう。

4

5 に答える 5

1

画像の表示サイズを固定しないでください。のように画像の幅を変更しwrap_contentます。画像がある場合は、画像の右側にテストを表示することを意味します。do not have image は、画像幅 0dip テキストが自動的に左側に来ることを意味します。これを試して

   <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="?android:attr/listPreferredItemHeight"
android:padding="6dip" >

<ImageView
    android:id="@+id/logo_article"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_alignParentTop="true"
    android:layout_marginRight="6dip" />

<TextView
    android:id="@+id/title_article"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:layout_alignWithParentIfMissing="true"
    android:layout_centerVertical="true"
    android:layout_toRightOf="@id/logo_article"
    android:gravity="center_vertical"
    android:text="Title Article" />

    </RelativeLayout>
于 2013-02-12T07:36:48.453 に答える
0

logo_article.setVisibility(View.GONE);表示するコンテンツがない場合に使用 します。それでおしまい。

于 2013-02-12T07:16:14.613 に答える
0

画像がない場合は、ImageView の setVisibility を GONE に設定する必要があります。TextView は幅全体を埋めます。

if(isImageAvailable)
{
    iv.setVisibility(View.VISIBLE);
}
else
{
    iv.setVisibility(View.GONE);
}
于 2013-02-12T07:16:29.497 に答える
0

ImageView の可視性を GONE に設定する画像がないことがわかった場合、プログラムで

 ImageView img = (ImageView)findViewById(R.id.logo_article);
 // logic here to find image
 //if no img
 img.setVisibility(View.GONE);
于 2013-02-12T07:16:42.413 に答える
0

空の場合、ImageView の可視性を GONE に設定します

于 2013-02-12T07:15:14.477 に答える