Android风格/阴影正确ListItem布局

时间:2015-05-19 20:34:13

标签: android android-layout android-listview android-imageview

我有一个使用ListFragment的应用。我想设置自己的ListItem布局,但不知道如何获得所需的效果。我希望它看起来像这样:

ImageLayout

我想要那个大的imageView,带有TextView和Like按钮的小阴影条纹。任何想法如何解决这个问题?尤其是阴影部分。

1 个答案:

答案 0 :(得分:0)

您需要使用setListAdapter(adapter)为ListFragment设置适配器。

您可以创建自己的实现BaseAdapter的适配器。

然后你像这样重写getView:

@Override  
public View getView(int position, View convertView, ViewGroup parent) {

 View v = convertView;  
 CompleteListViewHolder viewHolder;  
 if (convertView == null) 
 {  
     LayoutInflater li = (LayoutInflater) mContext  
                      .getSystemService(Context.LAYOUT_INFLATER_SERVICE);  
     v = li.inflate(R.layout.listitem, null);  
  }

  ImageView image = (ImageView)v.findViewById(R.id.image);
  TextView text = (TextView)v.findViewById(R.id.text);
  ... add the like button etc

  return v;  } 

listitem.xml:

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/FrameLayout1"
    android:layout_width="200dp"
    android:layout_height="200dp" >

<ImageView
    android:id="@+id/header"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:src="@drawable/someImage" />

<LinearLayout
    android:id="@+id/LinearLayout1"
    android:layout_width="match_parent"
    android:layout_height="50dp"
    android:layout_gravity="bottom"
    android:orientation="vertical"
    android:background="@drawable/gradient" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Some text" />

    <Button
        android:id="@+id/likeButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="right"
        android:text="Like" />

</LinearLayout>

</FrameLayout>

gradient.xml:

<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"    android:shape="rectangle" >

<gradient
    android:angle="90"
    android:endColor="#00000000"
    android:startColor="#FF000000"
    android:type="linear" />

<corners 
    android:radius="0dp"/>