Android 九宮格顯示多圖或 item
阿新 • • 發佈:2019-02-15
gradle 依賴
compile 'cn.lemon:multiview:0.1.8'
MultiView 基本使用:
由於依賴了RestHttp,所以初始化:
RestHttp.initialize(this);
if(BuildConfig.DEBUG){
RestHttp.setDebug(true,"network");
}
xml 佈局檔案
<cn.lemon.multi.MultiView android:id="@+id/multi_view" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="20dp" android:background="#f1506d" app:divideSpace="8dp" app:placeholder="@drawable/holder"/>
- 設定 item 之間的間隔
app:divideSpace="8dp"
- 設定佔位圖
app:placeholder="@drawable/holder"
java 程式碼:
multiView = (multiView) findViewById(R.id.cell_view); multiView.setLayoutParams(new LinearLayout.LayoutParams(900, ViewGroup.LayoutParams.WRAP_CONTENT)); data.add("http://i02.pictn.sogoucdn.com/73a90748d5e19769"); data.add("http://i01.pictn.sogoucdn.com/e19188bbc3966d6f"); data.add("http://i02.pictn.sogoucdn.com/85db79c962886004"); data.add("http://i01.pictn.sogoucdn.com/f44c1591194be8b9"); multiView.setImages(data); 設定圖片資源
如果你不只是顯示圖片,需要自定義 item 的情況,這個時候就需要新增一個自定義 Adapter 繼承 Adapter:
class MyAdapter extends Adapter<String> { private TextView textView; public MyAdapter(Context context) { super(context); } @Override public View getView(ViewGroup parent, int position) { View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item,parent,false); textView = (TextView) view.findViewById(R.id.text); return view; } @Override public void setData(String object) { super.setData(object); //view 繫結資料 textView.setText(object); } @Override public void setOnItemClick() { super.setOnItemClick(); //item 點選事件 } }
設定 Adapter,新增資料就好了
adapter = new MyAdapter(this);
multiView.setAdapter(adapter);
adapter.addAll(data);
ViewImageActivity 基本使用:
在 manifests 檔案中新增
<activity android:name="cn.lemon.multi.ui.ViewImageActivity"/>
不管是否使用 MultiView,其實都可以使用 ViewImageActivity,只需要在跳轉 Activity 的時候繫結好資料,如:
intent.putExtra(LookImageActivity.IMAGES_DATA_LIST, (Serializable) picUrlData); //這裡的資料集合必須是 List<Stirng>
intent.putExtra(LookImageActivity.IMAGE_NUM, data.indexOf(object));
主要還是使用在載入多張圖片的時候和 MultiView 聯合使用。
注意事項
依賴的其他庫
compile 'com.android.support:appcompat-v7:23.1.1'
compile 'com.android.support:support-v4:23.1.1'
compile 'cn.alien95:resthttp:1.0.5'