8

左側に画像があり、その画像の右側にタイトルが浮かび、その下に説明があるリスト ビューを作成する必要があります。ドキュメントのリスト ビューをチェックアウトしましたが、この例が見つからないようです。最初のタブコンテンツとしてリストビューを使用して、XMLで定義されたタブビュー(Androidの例のtabs1に従って)があります。ただし、RSS ニュースフィードを介してコンテンツをコードのリストビューに追加したいと考えています。

HTMLインジェクション文字列を使用してWebビューを使用することを考えていましたが、ドローアブルフォルダーから画像を挿入するにはどうすればよいですか。(これらの画像はローカルに保存された単なる「ニュース アイコン」であり、インターネットからの画像ではありません)

少し初心者の質問で申し訳ありませんが、助けていただければ幸いです:)

4

4 に答える 4

10

あなたが説明している構造は、ListViewアイテムのコンテンツを参照していると思います。これは、個々のアイテムのレイアウトを定義することで実現できます。以下のコードは、同様の状況で私のために機能しました:

<?xml version="1.0" encoding="UTF-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:padding="6dip" android:layout_height="?android:attr/listPreferredItemHeight">
    <ImageView
        android:id="@+id/result_icon"        
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_alignParentBottom="true"
        android:layout_marginRight="6dip"        
        android:src="@drawable/image1"/>
    <TextView
        android:id="@+id/result_name"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"        
        android:layout_toRightOf="@id/result_icon"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"        
        android:layout_alignWithParentIfMissing="true"                
        android:gravity="center_vertical"
        android:text="Title" />
    <TextView  
        android:id="@+id/result_second_line"
        android:layout_width="fill_parent"
        android:layout_height="26dip"      
        android:layout_toRightOf="@id/result_icon"
        android:layout_below="@id/result_name"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"        
        android:singleLine="true"
        android:ellipsize="marquee"
        android:text="Second line" />
</RelativeLayout>

次に、ListActivityで使用するBaseAdapterを拡張する必要があります。レイアウトを膨らませて、RSSフィードからのデータを入力する必要があります。

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    Result result = this.results.get(position);


    LayoutInflater inflater = (LayoutInflater) context.getSystemService(
                                        Context.LAYOUT_INFLATER_SERVICE);
    RelativeLayout view = (RelativeLayout) 
            inflater.inflate(R.layout.result_item, null, false);

    ImageView image = (ImageView) view.findViewById(R.id.result_icon);
    image.setImageResource(result.imageResource);

    TextView name = (TextView) view.findViewById(R.id.result_name);
    name.setText(result.location);

    TextView secondLine = (TextView) view.findViewById(R.id.result_second_line);
    secondLine.setText(result.shortDescription);

    return view;
}
于 2011-04-06T07:44:01.217 に答える
1

また、非常に優れたレイアウトandroid-layout-tricks-1については、こちらのページもご覧ください。

于 2011-07-03T01:18:26.170 に答える
0
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >





    <GridLayout
        android:id="@+id/gridLayout1"
        android:layout_width="match_parent"
        android:layout_height="0dip"
        android:layout_weight="1.07"
        android:columnCount="2" >

        <ImageView
            android:id="@+id/chkItemImage"
            android:layout_width="100dp"
            android:layout_height="100dp"
            android:layout_column="0"
            android:layout_gravity="left"
            android:layout_row="0"
            android:layout_rowSpan="3"
            android:src="@drawable/ic_launcher"
            android:scaleType="fitXY" />

        <TextView
            android:id="@+id/chkItemName"
            android:layout_column="1"
            android:layout_gravity="left"
            android:layout_row="0"
            android:text=""
            android:textAppearance="?android:attr/textAppearanceLarge" />

        <TextView
            android:id="@+id/chkItemDescription"
            android:layout_column="1"
            android:layout_gravity="left"
            android:layout_row="1"
            android:text=""
            android:textAppearance="?android:attr/textAppearanceLarge" />

        <TextView
            android:id="@+id/chkItemPrice"
            android:layout_column="1"
            android:layout_gravity="left"
            android:layout_row="2"
            android:text=""
            android:textAppearance="?android:attr/textAppearanceLarge" />


    </GridLayout>

于 2012-03-14T14:46:14.290 に答える
0

textview と imageview を含むリストビュー アイテムを設計する必要があります。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 android:orientation="horizontal" >

 <ImageView
 android:id="@+id/imageView"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content" />

 <TextView
 android:id="@+id/textView1"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:layout_marginLeft="40dp"
 android:layout_gravity="center_vertical"
 android:text="TextView" />
<TextView
 android:id="@+id/textView2"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:layout_marginLeft="40dp"
 android:layout_gravity="center_vertical"
 android:text="TextView" />

</LinearLayout>

次に、リストビューのレイアウトを設計する必要があります。次に、レイアウト インフレータを取得して、行アイテムのレイアウトをインフレートする必要があります。

  LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
  View single_row = inflater.inflate(R.layout.list_row, null,
 true);
于 2014-06-22T05:33:12.863 に答える