利用GridView和ImageSwitcher的基本用法
-
public class MainActivity extends Activity
-
{
-
int[] imageIds = new int[]
-
{R.drawable.bomb5,R.drawable.bomb6,R.drawable.bomb7,R.drawable.bomb8, R.drawable.bomb9,R.drawable.bomb10,R.drawable.bomb11,R.drawable.bomb12,
R.drawable.bomb13,R.drawable.bomb14, R.drawable.bomb15,R.drawable.bomb16 };
-
ImageSwitcher switcher;
-
@Override
-
public void onCreate(Bundle savedInstanceState)
-
{
-
super.onCreate(savedInstanceState);
-
setContentView(R.layout.main);
-
// 创建一个List对象,List对象的元素是Map
-
List<Map<String, Object>> listItems =
-
new ArrayList<Map<String, Object>>();
-
for (int i = 0; i < imageIds.length; i++)
-
{
-
Map<String, Object> listItem = new HashMap<String, Object>();
-
listItem.put("image", imageIds[i]);
-
listItems.add(listItem);
-
}
-
// 获取显示图片的ImageSwitcher
-
switcher = (ImageSwitcher)
-
findViewById(R.id.switcher);
-
// 为ImageSwitcher设置图片切换的动画效果
-
switcher.setFactory(new ViewSwitcher.ViewFactory()
-
{
-
@Override
-
public View makeView()
-
{
-
// 创建ImageView对象
-
ImageView imageView = new ImageView(MainActivity.this);
-
imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);
-
imageView.setLayoutParams(new ImageSwitcher.LayoutParams(
-
ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
-
// 返回ImageView对象
-
return imageView;
-
}
-
});
-
// 创建一个SimpleAdapter
-
SimpleAdapter simpleAdapter = new SimpleAdapter(this,
-
listItems
-
// 使用/layout/cell.xml文件作为界面布局
-
, R.layout.cell, new String[]{"image"},
-
new int[] { R.id.image1 });
-
GridView grid = (GridView) findViewById(R.id.grid01);
-
// 为GridView设置Adapter
-
grid.setAdapter(simpleAdapter);
-
// 添加列表项被选中的监听器
-
grid.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener()
-
{
-
@Override
-
public void onItemSelected(AdapterView<?> parent, View view,
-
int position, long id)
-
{
-
// 显示当前被选中的图片
-
switcher.setImageResource(imageIds[position]);
-
}
-
@Override
-
public void onNothingSelected(AdapterView<?> parent)
-
{
-
}
-
});
-
// 添加列表项被单击的监听器
-
grid.setOnItemClickListener(new AdapterView.OnItemClickListener()
-
{
-
@Override
-
public void onItemClick(AdapterView<?> parent, View view,
-
int position, long id)
-
{
-
// 显示被单击的图片
-
switcher.setImageResource(imageIds[position]);
-
}
-
});
-
}
-
}
|
XML文件
-
<?xml version="1.0" encoding="utf-8"?>
-
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-
android:orientation="vertical"
-
android:layout_width="match_parent"
-
android:layout_height="match_parent"
-
android:gravity="center_horizontal">
-
<!-- 定义一个GridView组件 -->
-
<GridView
-
android:id="@+id/grid01"
-
android:layout_width="match_parent"
-
android:layout_height="wrap_content"
-
android:horizontalSpacing="2dp"
-
android:verticalSpacing="2dp"
-
android:numColumns="4"
-
android:gravity="center"/>
-
<!-- 定义一个ImageSwitcher组件 -->
-
<ImageSwitcher
-
android:id="@+id/switcher"
-
android:layout_marginTop="30dp"
-
android:layout_width="wrap_content"
-
android:layout_height="wrap_content"
-
android:layout_gravity="center_horizontal"
-
android:inAnimation="@android:anim/fade_in"
-
android:outAnimation="@android:anim/fade_out"/>
-
</LinearLayout>
-
<?xml version="1.0" encoding="UTF-8"?>
-
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-
android:orientation="horizontal"
-
android:layout_width="match_parent"
-
android:layout_height="match_parent"
-
android:gravity="center_horizontal"
-
android:padding="4dp">
-
<ImageView
-
android:id="@+id/image1"
-
android:layout_width="50dp"
-
android:layout_height="50dp"
-
/>
-
</LinearLayout>
|
效果