AdapterViewFlipper和StackView的使用
2015-12-16 13:56
246 查看
练习使用AdapterViewFlipper
1.xml布局文件
可以查询API了解其他函数:http://www.android-doc.com/reference/android/widget/AdapterViewFlipper.html
练习使用StackView
使用StackView时发现它是以堆叠的方式呈现的,支持手势滑动,不能自动播放;而AdapterViewFlipper则类似于被水平排成一行,在View之间以渐隐渐现的动画切换。使用起来感觉也差不多。
在xml文件中有两个属性比较特殊:
android:loopviews=“ ”(设为true则是指允许轮播,当“播”到最后一张图片时,next是第一张,像是首尾衔接)
android:layerType=“ ”(hardware,software,none三个选项,三个参数分别设置后好像没感觉到什么区别,查了资料说是与硬件加速有关,也就是在动画设置的时候有作用,之后用到了再看吧)
因为测试的代码部分和上面使用的没有什么区别,就不贴代码了,主要是感受一下这两个组件显示效果的不同吧。
1.xml布局文件
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <AdapterViewFlipper android:id="@+id/flipper1" android:layout_width="match_parent" android:layout_height="match_parent" android:flipInterval="5000" android:layout_alignParentTop="true" > </AdapterViewFlipper> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_alignParentLeft="true" android:onClick="prev" android:text="上一个" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_centerHorizontal="true" android:onClick="next" android:text="下一个" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_alignParentRight="true" android:onClick="auto" android:text="自动" /> </RelativeLayout>Java代码:其实就和ListView组件一样的使用方法,扩展BaseAdapter显示你需要的View(重写getView()方法)
package com.example.uipractise; import android.app.ActionBar.LayoutParams; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterViewFlipper; import android.widget.BaseAdapter; import android.widget.ImageView; public class Pflipper extends Activity { private int[] image=new int[]{ R.drawable.x,R.drawable.y,R.drawable.z }; AdapterViewFlipper af; public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.flipper_main); af=(AdapterViewFlipper)findViewById(R.id.flipper1); BaseAdapter ba=new BaseAdapter() { @Override public View getView(int arg0, View arg1, ViewGroup arg2) { // TODO Auto-generated method stub ImageView im=new ImageView(Pflipper.this);//创建一个现实图像的组件 im.setImageResource(image[arg0]); im.setScaleType(ImageView.ScaleType.FIT_XY); im.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.MATCH_PARENT)); return im; } @Override public long getItemId(int arg0) { // TODO Auto-generated method stub return arg0; } @Override public Object getItem(int arg0) { // TODO Auto-generated method stub return image[arg0]; } @Override public int getCount() { // TODO Auto-generated method stub return image.length; } }; af.setAdapter(ba); } public void prev(View Source){ af.showPrevious(); af.stopFlipping();//停止自动播放 } public void next(View Source){ af.showNext(); af.stopFlipping(); } public void auto(View Source){ af.startFlipping(); } }与普通的ListView不同的是,增加了showPrevious(),showNext(),startFlipping(),startAnimation()等方法,可以根据需要进行设计。在上面的例子中,xml文件中已经设置了android:flipInterval="5000"即每隔5秒进行一次变化
可以查询API了解其他函数:http://www.android-doc.com/reference/android/widget/AdapterViewFlipper.html
练习使用StackView
使用StackView时发现它是以堆叠的方式呈现的,支持手势滑动,不能自动播放;而AdapterViewFlipper则类似于被水平排成一行,在View之间以渐隐渐现的动画切换。使用起来感觉也差不多。
在xml文件中有两个属性比较特殊:
android:loopviews=“ ”(设为true则是指允许轮播,当“播”到最后一张图片时,next是第一张,像是首尾衔接)
android:layerType=“ ”(hardware,software,none三个选项,三个参数分别设置后好像没感觉到什么区别,查了资料说是与硬件加速有关,也就是在动画设置的时候有作用,之后用到了再看吧)
因为测试的代码部分和上面使用的没有什么区别,就不贴代码了,主要是感受一下这两个组件显示效果的不同吧。
相关文章推荐
- android 项目中两个监听执行相同操作的简便写法
- Linux下screen命令,一个对运维人员特别有帮助的命令
- 【iOS】网页中调用JS与JS注入
- Android Studio - 目录结构 和 常用功能介绍 浅析
- oracle学习总结
- 开源webUI自动测试工具利器Sahi
- HTML5使用 getUserMedia方法调用本地摄像头拍照
- Android音频系统之AudioFlinger(三)
- iOS应用发布流程(一)------相关app证书的申请、下载以及安装
- python中 encode,decode,unicode,utf-8
- 打开MPP格式文件的十种方法
- TCP/IP(9)-TCP协议概述
- putty
- 数据库客户端们
- 【python】pip的使用
- Android SDK 国内镜像及配置方法
- 网站中被误解的用户体验设计
- 操作系统环境变量LANG和NLS_LANG的关系
- js模拟百度主页搜索功能
- Objective-C语言_面向对象(封装)