StackView的基本功能与用法(叠在一起的图片)

来源:互联网 发布:装修论坛 淘宝 编辑:程序博客网 时间:2024/04/30 17:42

StackView的基本功能与用法
这里写图片描述
下面是我们要实现的效果 通过点击上下按钮将叠在一起的图片切换到最前,
这里写图片描述
首先将布局代码定义出来,一个简单的StackView和两个Button按钮

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="horizontal" >    <StackView         android:id="@+id/mStackView"        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:loopViews="true"></StackView>    <LinearLayout         android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:orientation="vertical">        <Button             android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:text="上一个"            android:onClick="prev"/>            <Button             android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:text="下一个"            android:onClick="next"/>      </LinearLayout></LinearLayout>

接下来是代码实现

package com.test.stackview;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.widget.SimpleAdapter;import android.widget.StackView;public class MainActivity extends Activity {    private StackView mStackView;    int [] imageIds = new int [] {            R.drawable.icon_banana_1,            R.drawable.icon_banana_2,            R.drawable.icon_banana_3,            R.drawable.icon_banana_4,            R.drawable.icon_banana_5    };    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        mStackView = (StackView)findViewById(R.id.mStackView);        //创建一个list集合        List<Map<String,Object>> listitems = new ArrayList<Map<String,Object>>();           for(int i = 0;i<imageIds.length;i++){            Map<String,Object> map = new HashMap<String,Object>();            map.put("image", imageIds[i]);            listitems.add(map);        };        SimpleAdapter simpleAdapter = new SimpleAdapter(                MainActivity.this, listitems, R.layout.cell,                new String[]{"image"}, new int[]{R.id.image});        mStackView.setAdapter(simpleAdapter);    }    public void prev(View view){        //显示上一个组件        mStackView.showPrevious();    }    public void next(View view){        //显示下一个组件        mStackView.showNext();    }}

在创建SimpleAdapter时我们需要ImageView控件作为图片的载体,可以控制图片框的大小和位置等,所以另外单定义一个ImageView,代码如下

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical" >    <ImageView android:id="@+id/image"        android:layout_width="180dp"        android:layout_height="240dp"        android:layout_gravity="center_horizontal"/></LinearLayout>
0 0
原创粉丝点击