安卓中图片自动切换特效

来源:互联网 发布:电脑图标美化软件 编辑:程序博客网 时间:2024/05/17 23:19

页面内的图片可以自动切换,几张图片切换。

java代码:

package com.example.huadong;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.os.Parcelable;import android.support.v4.view.PagerAdapter;import android.support.v4.view.ViewPager;import android.support.v4.view.ViewPager.OnPageChangeListener;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.widget.ImageView;import android.widget.ImageView.ScaleType;import android.widget.TextView;public class MainActivity extends Activity {private ViewPager viewPager;private List<ImageView> imageViews;private String[] titles;private int[] imageResId;private List<View> dots;private TextView tv_title;private int currentItem = 0;private ScheduledExecutorService scheduleExecutorService;private Handler handler = new Handler(){public void handleMessage(android.os.Message msg){viewPager.setCurrentItem(currentItem);};};@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);imageResId =new int[] {R.drawable.dao2,R.drawable.dao3,R.drawable.dao4,R.drawable.dao5,R.drawable.dao6};titles = new String[imageResId.length];titles[0] = "你好咖啡蛋糕jfk个";titles[1] = "哦股如果iuruierui";titles[2] = "哥哥如果iuergihgdjdfjkjkg";titles[3] = "还给他提供版本比较好";titles[4] = "K歌客人塘沽海让他";       imageViews = new ArrayList<ImageView>();for(int i =0; i < imageResId.length; i++){ImageView imageView = new ImageView(this);imageView.setImageResource(imageResId[i]);imageView.setScaleType(ScaleType.CENTER_CROP);imageViews.add(imageView);}dots = new ArrayList<View>();dots.add(findViewById(R.id.v_dot0));dots.add(findViewById(R.id.v_dot1));dots.add(findViewById(R.id.v_dot2));dots.add(findViewById(R.id.v_dot3));dots.add(findViewById(R.id.v_dot4));tv_title = (TextView) findViewById(R.id.tv_title);tv_title.setText(titles[0]);viewPager = (ViewPager) findViewById(R.id.vp);viewPager.setAdapter(new MyAdapter());viewPager.setOnPageChangeListener(new MyPagerChangeListener());}@Overrideprotected void onStart() {         scheduleExecutorService = Executors.newSingleThreadScheduledExecutor();         scheduleExecutorService.scheduleAtFixedRate(new ScrollTask(),1, 2 , TimeUnit.SECONDS);super.onStart();}@Overrideprotected void onStop() {// TODO Auto-generated method stubscheduleExecutorService.shutdown();super.onStop();}private class ScrollTask implements Runnable{public void run(){synchronized (viewPager) {System.out.println("currentItem: " + currentItem);currentItem = (currentItem + 1) % imageViews.size();handler.obtainMessage().sendToTarget();}}}private class MyPagerChangeListener implements OnPageChangeListener{private int oldPosition = 0;public void onPageSelected(int position){currentItem = position;tv_title.setText(titles[position]);dots.get(oldPosition).setBackgroundResource(R.drawable.dot_normal);dots.get(position).setBackgroundResource(R.drawable.dot_focused);oldPosition = position;}public void onPageScrollStateChanged(int arg0){}public void onPageScrolled(int arg0,float arg1,int arg2){}}private class MyAdapter extends PagerAdapter{@Overridepublic int getCount(){return imageResId.length;}@Overridepublic Object instantiateItem(View arg0,int arg1){((ViewPager) arg0).addView(imageViews.get(arg1));return imageViews.get(arg1);}@Overridepublic void destroyItem(View arg0,int arg1,Object arg2){((ViewPager) arg0).removeView((View) arg2);}@Overridepublic boolean isViewFromObject(View arg0, Object arg1) {return arg0 == arg1;}@Overridepublic void restoreState(Parcelable arg0, ClassLoader arg1) {}@Overridepublic Parcelable saveState() {return null;}@Overridepublic void startUpdate(View arg0) {}@Overridepublic void finishUpdate(View arg0) {}}}



布局代码:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="fill_parent"    android:layout_height="180dip"    android:background="#FFFFFF"    android:orientation="vertical">         <FrameLayout          android:layout_width="fill_parent"         android:layout_height="fill_parent">        <android.support.v4.view.ViewPager            android:id="@+id/vp"            android:layout_width="fill_parent"            android:layout_height="fill_parent"/>                    <LinearLayout             android:layout_width="fill_parent"            android:layout_height="35dip"            android:layout_gravity="bottom"            android:gravity="center"            android:orientation="vertical">            <TextView android:id="@+id/tv_title"                android:layout_width="wrap_content"                android:layout_height="wrap_content"                android:textColor="#ffffff"/>             <LinearLayout                 android:layout_width="wrap_content"                android:layout_height="wrap_content"                android:layout_marginTop="3dip"                android:gravity="center">                                <View                     android:id="@+id/v_dot0"                    style="@style/dot_style"                    android:background="@drawable/dot_focused"/>                <View                     android:id="@+id/v_dot1"                    style="@style/dot_style"/>                <View                     android:id="@+id/v_dot2"                    style="@style/dot_style"/>                <View                     android:id="@+id/v_dot3"                    style="@style/dot_style"/>                <View                     android:id="@+id/v_dot4"                    style="@style/dot_style"/>            </LinearLayout>        </LinearLayout>     </FrameLayout></LinearLayout>

这个不是自己写出来的,是参照着别人的代码做出来的,
放着以后自己看,哈哈

0 0