android 图片滚动可以自动切换
来源:互联网 发布:学完java再学php 编辑:程序博客网 时间:2024/05/29 00:31
package com.example.viewpager;import java.util.ArrayList;import java.util.List;import java.util.concurrent.Executors;import java.util.concurrent.ScheduledExecutorService;import java.util.concurrent.TimeUnit;import android.app.Activity;import android.os.Bundle;import android.os.Handler;import android.support.v4.view.ViewPager;import android.support.v4.view.ViewPager.OnPageChangeListener;import android.view.LayoutInflater;import android.view.View;import android.widget.ImageView;public class Guide extends Activity implements OnPageChangeListener { private ViewPager vp; private ViewPagerAdapter vpa; private List<View> views;//背景图片 private ImageView[] dots;//选中点 private int[] ids = { R.id.iv1, R.id.iv2, R.id.iv3 };//图片控件显示点的 private int currentItem = 0;//当前显示图片 private ScheduledExecutorService scheduledExecutorService; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.guide); initView(); initDots(); } private Handler handler = new Handler() { public void handleMessage(android.os.Message msg) { vp.setCurrentItem(currentItem);// 切换当前显示的图片 }; }; private void initView() { LayoutInflater lInflater = LayoutInflater.from(this); views = new ArrayList<View>(); views.add(lInflater.inflate(R.layout.one, null)); views.add(lInflater.inflate(R.layout.two, null)); views.add(lInflater.inflate(R.layout.three, null)); vpa = new ViewPagerAdapter(views, this); vp = (ViewPager) findViewById(R.id.viewpager); vp.setAdapter(vpa); vp.setOnPageChangeListener(this); } private void initDots() { dots = new ImageView[views.size()]; for (int i = 0; i < views.size(); i++) { dots[i] = (ImageView) findViewById(ids[i]); } } private class ScrollTask implements Runnable { public void run() { synchronized (vp) { System.out.println("currentItem: " + currentItem); currentItem = (currentItem + 1) % views.size(); handler.obtainMessage().sendToTarget(); // 通过Handler切换图片 } } } @Override protected void onStart() { scheduledExecutorService = Executors.newSingleThreadScheduledExecutor(); // 当Activity显示出来后,每两秒钟切换一次图片显示 scheduledExecutorService.scheduleAtFixedRate(new ScrollTask(), 1, 2, TimeUnit.SECONDS); super.onStart(); } @Override protected void onStop() { // 当Activity不可见的时候停止切换 scheduledExecutorService.shutdown(); super.onStop(); } @Override public void onPageScrollStateChanged(int arg0) { } @Override public void onPageScrolled(int arg0, float arg1, int arg2) { } @Override public void onPageSelected(int arg0) { currentItem = arg0; for (int i = 0; i < ids.length; i++) { if (arg0 == i) { dots[i].setImageResource(R.drawable.point); } else { dots[i].setImageResource(R.drawable.point_select); } } }}
viewPager适配器:
package com.example.viewpager;import java.util.List;import android.content.Context;import android.support.v4.view.PagerAdapter;import android.support.v4.view.ViewPager;import android.view.View;public class ViewPagerAdapter extends PagerAdapter { private List<View> views; private Context context; public ViewPagerAdapter(List<View> views, Context context) { super(); this.views = views; this.context = context; } @Override public void destroyItem(View container, int position, Object object) { ((ViewPager)container).removeView(views.get(position)); } @Override public Object instantiateItem(View container, int position) { ((ViewPager)container).addView(views.get(position)); return views.get(position); } @Override public int getCount() { return views.size(); } @Override public boolean isViewFromObject(View arg0, Object arg1) { return arg0==arg1; }}
guide.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" > <android.support.v4.view.ViewPager android:id="@+id/viewpager" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="#00000000" > </android.support.v4.view.ViewPager> <LinearLayout android:id="@+id/ll" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:gravity="center_horizontal" android:orientation="horizontal" > <ImageView android:id="@+id/iv1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/point_select" > </ImageView> <ImageView android:id="@+id/iv2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/point" > </ImageView> <ImageView android:id="@+id/iv3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/point" > </ImageView> </LinearLayout></RelativeLayout>
one.xml:
<?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/imageView1" android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/guide_1" /></LinearLayout>
0 0
- android 图片滚动可以自动切换
- android 图片自动滚动
- android 图片自动切换
- Android 图片自动切换
- javascript图片自动左右滑动滚动切换
- ScrollView+ViewPager(上下滚动+自动切换图片)
- 网易新闻首页的实现,可以添加,移除标签,自动滚动图片,无限左右切换图片
- android自定义Gallery实现手动和自动循环滚动切换图片
- android自定义Gallery实现手动和自动循环滚动切换图片
- Android中仿淘宝首页顶部滚动自定义HorizontalScrollView定时水平自动切换图片
- android图片自动定时切换
- 带左右箭头切换的自动滚动图片JS特效
- 19.制作自动切换滚动的图片轮播
- 单行图片滚动,自动向左滚动一次暂停一下,可以手动向右或者左滚动
- Android基础之图片自动滚动
- scrollview滚动图片切换
- android--图片的水平自动切换
- android-ViewPager实现图片自动切换
- 互联网神经学系列第五篇:研究大脑中的谷歌,脸书和华为思科路由,脑互联网生理学
- 图形显示
- optimizer for eclipse--Eclipse优化器,让你的Eclipse飞起来吧!
- 理解OAuth 2.0
- Java_可变参数的使用
- android 图片滚动可以自动切换
- Shell 比较运算符号
- RANSAC
- 好记性不如烂笔头82-spring3学习(3)-spring的Resource使用和传统方法的对比
- 日期字符串格式化成日期/日期格式化成指定格式字符串
- MFC修改控件颜色
- wampserver端口修改
- oracle 免客户端绿色配置 (instantclient)
- Fragment和View的比较