当前位置: 代码迷 >> Android >> Android的AdapterViewFlipper跟Stackview-android学习之旅(三十)
  详细解决方案

Android的AdapterViewFlipper跟Stackview-android学习之旅(三十)

热度:35   发布时间:2016-04-28 00:40:16.0
Android的AdapterViewFlipper和Stackview-android学习之旅(三十)

AdapterViewFlipper简介

AdapterViewFlipper继承了AdapterViewAnimater。每次只能显示一个组件,用showPrevious()和showNext()来显示这些组件上一个和下一个。还有startFlipping()控制它自动播放。

AdapterViewFlipper属性

这里写图片描述
这里写图片描述

代码实例

package peng.liu.testview;import android.app.Activity;import android.content.res.TypedArray;import android.os.Bundle;import android.view.View;import android.view.ViewGroup;import android.widget.AdapterView;import android.widget.AdapterViewFlipper;import android.widget.BaseAdapter;import android.widget.Gallery;import android.widget.ImageView;public class MainActivity extends Activity {    private int[] imageIds = new int[]{        R.drawable.ic_launcher,R.drawable.ic_launcher,R.drawable.ic_launcher,R.drawable.ic_launcher,R.drawable.ic_launcher,R.drawable.ic_launcher    };    private AdapterViewFlipper flipper;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        flipper = (AdapterViewFlipper) findViewById(R.id.flipper);        BaseAdapter adapter = new BaseAdapter() {            @Override            public int getCount() {                return 0;            }            @Override            public Object getItem(int i) {                return null;            }            @Override            public long getItemId(int i) {                return 0;            }            @Override            public View getView(int i, View view, ViewGroup viewGroup) {               ImageView image = new ImageView(MainActivity.this);               image.setImageResource(imageIds[i]);                image.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));                image.setScaleType(ImageView.ScaleType.FIT_XY);                return image;            }        };    }}
<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:paddingLeft="@dimen/activity_horizontal_margin"    android:paddingRight="@dimen/activity_horizontal_margin"    android:paddingTop="@dimen/activity_vertical_margin"    android:paddingBottom="@dimen/activity_vertical_margin"    tools:context=".MainActivity"    android:orientation="vertical">    <AdapterViewFlipper        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:id="@+id/flipper"        android:flipInterval="5000"        tools:ignore="NewApi" />    <LinearLayout        android:layout_width="fill_parent"        android:layout_height="wrap_content">        <Button            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:id="@+id/previous"            android:onClick="previous"            android:text="previous"/>        <Button            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:id="@+id/next"            android:onClick="next"            android:text="next"/>        <Button            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:id="@+id/auto"            android:onClick="auto"            android:text="auto"/>        </LinearLayout></LinearLayout>

布局代码

<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:paddingLeft="@dimen/activity_horizontal_margin"    android:paddingRight="@dimen/activity_horizontal_margin"    android:paddingTop="@dimen/activity_vertical_margin"    android:paddingBottom="@dimen/activity_vertical_margin"    tools:context=".MainActivity"    android:orientation="vertical">    <AdapterViewFlipper        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:id="@+id/flipper"        android:flipInterval="5000"        tools:ignore="NewApi" />    <LinearLayout        android:layout_width="fill_parent"        android:layout_height="wrap_content">        <Button            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:id="@+id/previous"            android:onClick="previous"            android:text="previous"/>        <Button            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:id="@+id/next"            android:onClick="next"            android:text="next"/>        <Button            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:id="@+id/auto"            android:onClick="auto"            android:text="auto"/>        </LinearLayout></LinearLayout>

StackView简介

StackView也是继承于AdapterViewAnimator,它是以重叠在一起的,使用showPrevious()和showNext()分别显示上一张和下一张。属性类似AdapterViewFlipper

实例

package peng.liu.testview;import android.annotation.TargetApi;import android.app.Activity;import android.content.res.TypedArray;import android.os.Build;import android.os.Bundle;import android.view.View;import android.view.ViewGroup;import android.widget.AdapterView;import android.widget.AdapterViewFlipper;import android.widget.BaseAdapter;import android.widget.Gallery;import android.widget.ImageView;import android.widget.SimpleAdapter;import android.widget.StackView;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;public class MainActivity extends Activity {    private int[] imageIds = new int[]{        R.drawable.ic_launcher,R.drawable.ic_launcher,R.drawable.ic_launcher,R.drawable.ic_launcher,R.drawable.ic_launcher,R.drawable.ic_launcher    };    private StackView stack;    @TargetApi(Build.VERSION_CODES.HONEYCOMB)    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        stack = (StackView) findViewById(R.id.stack);        List<Map<String,Object>> listItems = new ArrayList<Map<String,Object>>();        for (int i = 0;i<imageIds.length;i++){            Map<String ,Object> item = new HashMap<String,Object>();            item.put("image",imageIds[i]);            listItems.add(item);        }        SimpleAdapter adapter = new SimpleAdapter(this,listItems,R.layout.simple_item,new String[]{"image"},new int[]{R.id.image01});        stack.setAdapter(adapter);    }}
<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:paddingLeft="@dimen/activity_horizontal_margin"    android:paddingRight="@dimen/activity_horizontal_margin"    android:paddingTop="@dimen/activity_vertical_margin"    android:paddingBottom="@dimen/activity_vertical_margin"    tools:context=".MainActivity"    android:orientation="vertical">    <StackView        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:id="@+id/stack"        android:loopViews="true"        tools:ignore="NewApi" />    <LinearLayout        android:layout_width="fill_parent"        android:layout_height="wrap_content">        <Button            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:id="@+id/previous"            android:text="previous"            android:onClick="previous"/>        <Button            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:id="@+id/next"            android:text="next"            android:onClick="next"/>        </LinearLayout></LinearLayout>
<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:paddingLeft="@dimen/activity_horizontal_margin"    android:paddingRight="@dimen/activity_horizontal_margin"    android:paddingTop="@dimen/activity_vertical_margin"    android:paddingBottom="@dimen/activity_vertical_margin"    tools:context=".MainActivity"    android:orientation="vertical">    <ImageView        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:id="@+id/image01"/></LinearLayout>
  相关解决方案