是否可以从多种尺寸的自定义适配器创建视图?

时间:2012-12-27 12:23:59

标签: android

例如,像Google+一样,交替显示一个大尺寸和两个小尺寸显示,直到到达最后一个视图。所以可以这样做。

喜欢这张图片: http://upic.me/show/42297666

Google+会显示不同尺寸的每件商品。

感谢。

1 个答案:

答案 0 :(得分:0)

是。

1)您创建一个布局(my_layout)来处理路线

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
 android:gravity="left"
 android:padding="1dp"
android:layout_gravity="left"
android:orientation="horizontal" >
<ImageView
    android:id="@+id/contentImage1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:gravity="center"
    android:padding="5dp"
    android:visibility="invisible"
    android:src="@drawable/browse_product_thumbnail" />
<ImageView
    android:id="@+id/contentImage2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:gravity="center"
    android:padding="5dp"
    android:visibility="invisible"
    android:src="@drawable/browse_product_thumbnail" />

2)现在为此和getView()方法编写和适配器。像下面的代码

public class ItemListAdapter extends ArrayAdapter<LaunchItem> {

private int             _resource;
private LayoutInflater  _inflater;
private static Launcher _browse;
private static final String tag = "Adapterr";
public ItemListAdapter(Launcher activity , int resourceId, List<LaunchItem> objects) 
{
        super( activity, resourceId, objects );
        _resource = resourceId;
        _inflater = LayoutInflater.from(activity);
        this._browse = activity;
}




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


        convertView = ( LinearLayout ) _inflater.inflate( _resource, null );

        String imagePath = "";
        String name = "";
        LaunchItem item = getItem( position );


    }

}

您可以决定在getView上显示什么以及它们的可见性。

3)在代码中使用自定义适配器。

            List<LaunchItem> lList = new ArrayList<LaunchItem>();   
        lList.add(new LaunchItem(image1,image2 );
        ItemListAdapter  data = new  ItemListAdapter (this,R.layout.my_layout,lList);
        view.setAdapter(data);

-Preeya