Handler实现轮播
来源:互联网 发布:广州哪里可以学淘宝 编辑:程序博客网 时间:2024/06/05 20:27
首先写入网络权限
导入imagerlouder的jar包
布局
activity的布局
<RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <android.support.v4.view.ViewPager android:layout_width="match_parent" android:layout_height="200dp" android:id="@+id/vp" ></android.support.v4.view.ViewPager> <LinearLayout android:id="@+id/linear" android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignBottom="@+id/vp" ></LinearLayout> </RelativeLayout>
drawable文件夹中的布局
point_selected.xml
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval" > <solid android:color="#f00"></solid></shape>
point_unselected.xml
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval" > <solid android:color="#fff"></solid></shape>
Activity主方法里边
package com.example.denmo21;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.support.v4.view.ViewPager;import android.support.v7.app.AppCompatActivity;import android.widget.ImageView;import android.widget.LinearLayout;import android.widget.ListView;import com.handmark.pulltorefresh.library.PullToRefreshScrollView;import java.util.ArrayList;import java.util.List;public class MainActivity extends AppCompatActivity { private ImageView[] imgarray; private PullToRefreshScrollView psv; private ViewPager vp; private ListView lv; private String url = "http://pic8.nipic.com/20100701/5290458_114840036316_2.jpg"; private String url2 = "http://pic2.nipic.com/20090424/1468853_230119053_2.jpg"; private String url3 = "http://img3.3lian.com/2013/s1/20/d/57.jpg"; private String url4 = "http://pic39.nipic.com/20140226/18071023_164300608000_2.jpg"; private String url5 = "http://a0.att.hudong.com/15/08/300218769736132194086202411_950.jpg"; private LinearLayout linear; private List<String> pagelist; private Handler handler = new Handler() { @Override public void handleMessage(Message msg) { super.handleMessage(msg); int index = vp.getCurrentItem(); vp.setCurrentItem(index + 1); getinitimg(index + 1);//改变xioayd sendEmptyMessageDelayed(1, 2000); } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); psv = (PullToRefreshScrollView) findViewById(R.id.psv); vp = (ViewPager) findViewById(R.id.vp); lv = (ListView) findViewById(R.id.lv); linear = (LinearLayout) findViewById(R.id.linear); pagelist = new ArrayList<>(); pagelist.add(url); pagelist.add(url2); pagelist.add(url3); pagelist.add(url4); pagelist.add(url5); MyPage myPage = new MyPage(this, pagelist); vp.setAdapter(myPage); vp.setCurrentItem(pagelist.size() * 100); imgarray = new ImageView[pagelist.size()]; handler.sendEmptyMessageDelayed(1, 1000); initimg();//初始化小圆点 } public void getinitimg(int index) { int selectindex = index % pagelist.size(); for (int i = 0; i < pagelist.size(); i++) { if (i == selectindex) { imgarray[i].setImageResource(R.drawable.point_selected); } else { imgarray[i].setImageResource(R.drawable.point_unselected); } } } /** * 初始化小圆点 */ public void initimg() { for (int i = 0; i < pagelist.size(); i++) { ImageView img = new ImageView(this); img.setScaleType(ImageView.ScaleType.FIT_XY); if (i == 0) { img.setImageResource(R.drawable.point_selected); } else { img.setImageResource(R.drawable.point_unselected); } //设置小圆点的大小 LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(20, 20); params.setMargins(0, 0, 10, 10);//设置间距 linear.addView(img, params); imgarray[i] = img; } }}
适配器
MyPage
package com.example.denmo21;import android.content.Context;import android.support.v4.view.PagerAdapter;import android.view.View;import android.view.ViewGroup;import android.widget.ImageView;import com.nostra13.universalimageloader.core.ImageLoader;import java.util.List;/** * Created by zld on 2017/12/21. */public class MyPage extends PagerAdapter { private Context context; private List<String> pagelist; public MyPage(Context context, List<String> pagelist) { this.context = context; this.pagelist = pagelist; } @Override public int getCount() { return Integer.MAX_VALUE; } @Override public boolean isViewFromObject(View view, Object object) { return view == object; } @Override public Object instantiateItem(ViewGroup container, int position) { ImageView img = new ImageView(context); img.setScaleType(ImageView.ScaleType.FIT_XY); ImageLoader.getInstance().displayImage(pagelist.get(position % pagelist.size()), img); container.addView(img); return img; } @Override public void destroyItem(ViewGroup container, int position, Object object) { container.removeView((View) object); }}
MyApption
package com.example.denmo21;import android.app.Application;import com.nostra13.universalimageloader.core.ImageLoader;import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;/** * Created by zld on 2017/12/21. */public class MyApption extends Application { @Override public void onCreate() { super.onCreate(); ImageLoaderConfiguration configuration = new ImageLoaderConfiguration.Builder(this).build(); ImageLoader.getInstance().init(configuration); }}
阅读全文
0 0
- Handler实现轮播
- Handler+viewPager实现图片轮播
- 安卓:Handler实现图片轮播(非ViewPager)
- Android中利用Handler实现图片轮播 ,示例+ 代码
- Handler和属性动画实现TextView广告轮播效果
- 简单使用viewpager+handler实现图片的轮播
- viewpager+handler无限轮播
- ViewPager+handler无限轮播
- Handler实现的无限自动轮播
- 通过RadioGroup 和ViewPager 以及Handler 实现图片的轮播
- Android 使用Handler的PostDelayed方法实现图片的轮播
- 使用Handler中postDelayed方法实现广告页面轮播效果
- 使用Handler中postDelayed方法实现广告页面无限循环轮播效果
- 使用handler实现轮播图无限轮播时报 unfortunately 程序名 has stopped错误
- 从网上获取图片实现无线轮播viewpager结合handler
- handler+viewpager无限轮播图片
- Handler的一个图片轮播程序
- handler轮播网上请求的图片
- With(ReadPast)就不会被阻塞吗?
- Android ScrollView的滑动监听
- 短视频平台小咖秀小程序,给你生活增添更多乐趣
- C#操作Excel类,功能比较全
- 全选/反选
- Handler实现轮播
- Model
- 软件版本的发布命名规则(吕万友)
- Codeforces 165C(二分)
- JavaScript 数组的操作方法
- 第 4 章 选择合适的Python开发环境
- Hadoop完全分布式集群环境搭建及测试
- HTML页面在IOS上出现卡顿的解决方案(overflow:scroll)
- EventBus使用