2011-04-06 7 views
8

왼쪽에 이미지가있는 목록 뷰를 만들 필요가 있습니다. 이미지의 오른쪽에 플로팅 된 제목과 그에 대한 설명이 필요합니다. 문서에서 목록보기를 체크 아웃했지만 이에 대한 예를 찾을 수 없습니다. 첫 번째 탭 내용으로 목록보기가 XML로 정의 된대로 탭보기를 사용합니다 (안드로이드 예제 탭 1 기준). 그러나 코드에서 RSS 뉴스를 통해 목록보기에 콘텐츠를 추가하려고합니다.제목, 이미지 및 텍스트가 포함 된 목록보기?

나는 HTML 삽입 문자열을 사용하여 webview를 사용하려고했지만 drawable 폴더의 이미지를 삽입하는 방법은 무엇입니까? 그것은 nooby 질문의 비트가

죄송합니다 (이 이미지는 단지 "뉴스 아이콘"로컬로 저장이 아닌 인터넷에서 이미지입니다)하지만, 어떤 도움을 주시면 감사 :

답변

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; 
} 
+0

덕분에이 내가 RelativeLayout의 파일이 아마 프로젝트/고해상도/레이아웃 result_item.xml로 저장하고 있음을 유의 –

+1

도움이되었다 / –

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> 

0

당신은 텍스트 뷰와 이미지 뷰를 포함하는 목록보기 항목을 설계 할 필요가 아주 좋은 레이아웃 여기이 페이지를 확인할 수 있습니다.

<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); 
관련 문제