目录
SimpltAdapter(简单适配器)
其实这个适配器并不简单,功能很强大.
simpleAdapter中五个参数的:
参数 | 描述 |
---|---|
Context context |
上下文对象 |
List<? extends Map<String, ?>> data |
数据源是含有Map的一个集合 |
int resource |
每一个item的布局文件 |
String[] from |
new String[]{}数组,数组的里面的每一项要与第二个参数中的存入map集合的的key值一样,一一对应 |
int[] to |
new int[]{}数组,数组里面的第三个参数中的item里面的控件id。 |
ImageView
ImageView是图片控件,就不在过多介绍了.
ImageView提供了adjustViewBounds属性,用于设置缩放时是否保持原图长宽比。 单独设置不起作用,需要配合maxWidth和maxHeight属性一起使用。
如果想设置图片固定大小,又想保持图片宽高比,需要如下设置:
1)设置layout_width和layout_height为wrap_content;
2)设置adjustViewBounds为true;
3)设置maxWidth、MaxHeight值。
下面进行代码演示.O(∩_∩)O
实战演示
新添加一个资源文件list_array.xml
,主要作用是为simpleAdapter
添加显示规则:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/header"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:maxHeight="80dp"
android:maxWidth="80dp"
android:padding="10dp"/>
<TextView
android:id="@+id/name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="20dp"
android:padding="10dp"/>
</LinearLayout>
activity_main.xml
主界面中加入一个ListView
控件:
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<ListView
android:id="@+id/list_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
tools:layout_editor_absoluteX="0dp"
tools:layout_editor_absoluteY="8dp" />
</android.support.constraint.ConstraintLayout>
然后便是添加代码了:
package com.example.user.imagetest;
import android.app.Activity;
import android.os.Bundle;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 获取资源
ListView list1 = (ListView)findViewById(R.id.list_view);
// 构建Adapter
String[] arrayName = {"孙悟空","牛魔王","猪八戒","哪吒","江流儿"};
// 头像图标
int[] headerID = {R.drawable.p002,R.drawable.p003,R.drawable.p002,R.drawable.p003,R.drawable.p002};
List<Map<String, Object>> listTest = new ArrayList<Map<String, Object>>();
for(int i = 0; i < arrayName.length; i++){
Map<String, Object> listitem = new HashMap<String, Object>();
listitem.put("header", headerID[i]);
listitem.put("name", arrayName[i]);
listTest.add(listitem);
}
// 创建SimpleAdapter
SimpleAdapter simpleAdapter = new SimpleAdapter(this, listTest, R.layout.list_array,
new String[] {"header", "name"}, new int[] {R.id.header, R.id.name});
// 为listview设置适配器
list1.setAdapter(simpleAdapter);
}
}
当然代码中使用的图片需要自己添加.O(∩_∩)O
网友评论