- 导入photoview相关代码:
<?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="160dp"
android:background="@color/white" >
<com.soyoungboy.widget.loopviewpager.AutoLoopViewPager
android:id="@+id/pager"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
<com.soyoungboy.widget.viewpagerindicator.CirclePageIndicator
android:id="@+id/indicator"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="5dp"
android:padding="5dp" />
</RelativeLayout>
-
public class PhotoViewActivity extends BaseFragmentActivity {
private com.soyoungboy.widget.loopviewpager.AutoLoopViewPager pager;
private int[] imageViewIds;
private com.soyoungboy.widget.viewpagerindicator.CirclePageIndicator indicator;
private List<String> imageList = new ArrayList<String>(Arrays.asList(
"http://pic.nipic.com/2008-07-11/20087119630716_2.jpg",
"http://pic.nipic.com/2008-07-11/20087119630716_2.jpg",
"http://pic.nipic.com/2008-07-11/20087119630716_2.jpg"));
@Override
protected void onCreate(Bundle arg0) {
super.onCreate(arg0);
setContentView(R.layout.activity_photoview);
initView();
}
@Override
protected void initView() {
pager = (com.soyoungboy.widget.loopviewpager.AutoLoopViewPager) findViewById(R.id.pager);
indicator = (com.soyoungboy.widget.viewpagerindicator.CirclePageIndicator) findViewById(R.id.indicator);
//设置要显示的图片内容
imageViewIds = new int[] { R.drawable.house_background, R.drawable.house_background_1, R.drawable.house_background_2};
//适配器
GalleryPagerAdapter galleryAdapter = new GalleryPagerAdapter();
pager.setAdapter(galleryAdapter);
indicator.setViewPager(pager);
//控制距离左边,上边,右边,下边的px距离
indicator.setPadding(5, 5, 10, 5);
}
@Override
protected void initTitleView() {
}
@Override
protected void click(View view) {
}
//轮播图适配器
public class GalleryPagerAdapter extends PagerAdapter {
@Override
public int getCount() {
return imageViewIds.length;
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view == object;
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
ImageView item = new ImageView(PhotoViewActivity.this);
//Imageview上面显示图片
item.setImageResource(imageViewIds[position]);
ViewGroup.LayoutParams params = new ViewGroup.LayoutParams(-1, -1);
item.setLayoutParams(params);
item.setScaleType(ImageView.ScaleType.FIT_XY);
container.addView(item);
final int pos = position;
//Imageview单击事件处理
item.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//进入ImageGalleryActivity代码里面去
Intent intent = new Intent(PhotoViewActivity.this, ImageGalleryActivity.class);
intent.putStringArrayListExtra("images", (ArrayList<String>) imageList);
intent.putExtra("position", pos);
startActivity(intent);
}
});
return item;
}
@Override
public void destroyItem(ViewGroup collection, int position, Object view) {
collection.removeView((View) view);
}
}
@Override
protected void onResume() {
super.onResume();
//开始自动左右切换图片
pager.startAutoScroll();
}
@Override
protected void onPause() {
super.onPause();
//结束自动左右切换图片
pager.stopAutoScroll();
}
}
-
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:fitsSystemWindows="true"
android:background="@color/black"> <android.support.v4.view.ViewPager
android:id="@+id/viewer"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_below="@+id/layoutHeader" /> </RelativeLayout>
public class ImageGalleryActivity extends BaseFragmentActivity { private int position;
private List<String> imgUrls; //图片列表
private TextView headTitle;
private Button headBackBtn; private ViewPager mViewPager; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_touch_gallery); Intent intent = getIntent();
position = intent.getIntExtra("position", 0);
//获取图片的url List集合
imgUrls = intent.getStringArrayListExtra("images");
if(imgUrls == null) {
imgUrls = new ArrayList<>();
}
initGalleryViewPager();
} @Override
protected void onDestroy() {
super.onDestroy();
}
private void initGalleryViewPager() {
PhotoViewAdapter pagerAdapter = new PhotoViewAdapter(this, imgUrls);
pagerAdapter.setOnItemChangeListener(new PhotoViewAdapter.OnItemChangeListener() {
int len = imgUrls.size();
@Override
public void onItemChange(int currentPosition) {
//滑动到总图片数目的几分之几
// headTitle.setText((currentPosition+1) + "/" + len); }
});
mViewPager = (ViewPager)findViewById(R.id.viewer);
mViewPager.setOffscreenPageLimit(3);
mViewPager.setAdapter(pagerAdapter);
mViewPager.setCurrentItem(position);
} @Override
protected void initView() { } @Override
protected void initTitleView() { } @Override
protected void click(View view) { } }
android项目实战 --ListView 头部ViewPager广告轮询图效果的更多相关文章
-
Android开发之ViewPager实现轮播图(轮播广告)效果的自定义View
最近开发中需要做一个类似京东首页那样的广告轮播效果,于是采用ViewPager自己自定义了一个轮播图效果的View. 主要原理就是利用定时任务器定时切换ViewPager的页面. 效果图如下: 主页面 ...
-
Android项目实战(四十七):轮播图效果Viewpager
简易.常用的轮播图效果ViewPager ,老技术了,记一笔留着以后ctrl C + ctrl V 需求如下: 不定张个数的ImagView轮播,右下角显示轮播点图标,每隔固定时间切换下一张,最 ...
-
(转载)Android项目实战(二十八):使用Zxing实现二维码及优化实例
Android项目实战(二十八):使用Zxing实现二维码及优化实例 作者:听着music睡 字体:[增加 减小] 类型:转载 时间:2016-11-21我要评论 这篇文章主要介绍了Android项目 ...
-
Android项目实战(二十九):酒店预定日期选择
先看需求效果图: 几个需求点: 1.显示当月以及下个月的日历 (可自行拓展更多月份) 2.首次点击选择"开始日期",再次点击选择"结束日期" (1).如果&qu ...
-
Android项目实战--手机卫士开发系列教程
<ignore_js_op> banner131010.jpg (71.4 KB, 下载次数: 0) 下载附件 保存到相册 2 分钟前 上传 Android项目实战--手机卫士01- ...
-
Android项目实战(四十九):Andoird 7.0+相机适配
解决方案类似: Android项目实战(四十):Andoird 7.0+ 安装APK适配 解决方法: 一.在AndroidManifest.xml 文件中添加 四大组件之一的 <provider ...
-
Android项目实战(三十二):圆角对话框Dialog
前言: 项目中多处用到对话框,用系统对话框太难看,就自己写一个自定义对话框. 对话框包括:1.圆角 2.app图标 , 提示文本,关闭对话框的"确定"按钮 难点:1.对话框边框圆角 ...
-
(转载)Android项目实战(三十二):圆角对话框Dialog
Android项目实战(三十二):圆角对话框Dialog 前言: 项目中多处用到对话框,用系统对话框太难看,就自己写一个自定义对话框. 对话框包括:1.圆角 2.app图标 , 提示文本,关闭对话 ...
-
(转载)Android项目实战(二十七):数据交互(信息编辑)填写总结
Android项目实战(二十七):数据交互(信息编辑)填写总结 前言: 项目中必定用到的数据填写需求.比如修改用户名的文字编辑对话框,修改生日的日期选择对话框等等.现总结一下,方便以后使用. 注: ...
随机推荐
-
Plupload上传组件 + javaweb实现上传源码以及DEMO
Plupload 是一个Web浏览器上的界面友好的文件上传模块,可显示上传进度.图像自动缩略和上传分块.可同时上传多个文件: 上网找了很多Plupload的DEMO都无法正常使用, 而且Pluploa ...
-
小技巧-a标签去除蓝圈
可以看到,蓝色的边框破坏了页面的整体美感,很多时候我们都是不需要的.通过设置相应的css可以去除点击过后的蓝色边框. map area { outline: none; } 效果如图,点击过后厌人的蓝 ...
-
JAVA多线程通信
JAVA多线程通信 package com.frank.thread; /** * author:pengyan * date:Jun 16, 2011 * file:ProducerAndCusto ...
-
开源的Android开发框架-------PowerFramework使用心得(一)总体介绍
PowerFramework是一款几乎囊括了所有Android基础功能的框架应用,这个框架目前是开源的,开发者可以在这个框架的基础上进行二次开发.结合开发者自己的UI设计,可以很快就能开发出具备基础应 ...
-
Android Bitmap圆角
代码如下: public Bitmap transform(Bitmap source) { int size = Math.min(source.getWidth(), source.getHeig ...
-
css经典布局—stick footer布局
html部分 <div id="wrap"> <div id="main" class="clearfix"> &l ...
-
Yii2.0源码阅读-视图(View)渲染过程
之前的文章我们根据源码的分析,弄清了Yii如何处理一次请求,以及根据解析的路由如何调用控制器中的action,那接下来好奇的可能就是,我在控制器action中执行了return $this->r ...
-
SpringBoot整合Druid数据源
关于SpringBoot数据源请参考我上一篇文章:https://www.cnblogs.com/yueshutong/p/9409295.html 一:Druid介绍 1. Druid是什么? Dr ...
-
Ceph常用命令
目录 [1.环境准备] [2.部署管理] [3.集群扩容] [4.用户管理] [5.密钥环管理] [6.块设备管理] [7.快照管理] [8.参考链接] 简要说明: 最近心血来潮,对分布式存储感兴趣, ...
-
(C/C++学习笔记) 十七. 面向对象程序设计
十七. 面向对象程序设计 ● 面向对象程序设计的基本概念 ※ 类实际上是一种复杂的数据类型,它不仅包含不同类型的数据,还包含对这些数据的一些必要的操作. 而对象则是这种复杂的数据类型的一个变量. 类是 ...