安卓开发 轮播图Banner+缩放PhotoView
来源:互联网 发布:ubuntu显示隐藏文件 编辑:程序博客网 时间:2024/05/18 01:31
项目依赖:
//图片加载和缓存库 compile 'com.github.bumptech.glide:glide:4.0.0-RC0' //轮播图第三方库 compile 'com.youth.banner:banner:1.+' //图片放大缩小库 compile 'cn.bluemobi.dylan:photoview:1.3'
项目中使用网络图片,添加网络权限:
<uses-permission android:name="android.permission.INTERNET" />
主页面MainActivity(实现banner轮播图):
public class MainActivity extends AppCompatActivity { @Bind(R.id.banner) Banner banner; List<String> Url;//图片网址 List<String> Title;//标题 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ButterKnife.bind(this); Url = new ArrayList<>(); Url.add("https://ws1.sinaimg.cn/large/610dc034ly1ffyp4g2vwxj20u00tu77b.jpg"); Url.add("https://ws1.sinaimg.cn/large/610dc034ly1fgdmpxi7erj20qy0qyjtr.jpg"); Url.add("https://ws1.sinaimg.cn/large/610dc034ly1fgchgnfn7dj20u00uvgnj.jpg"); Url.add("https://ws1.sinaimg.cn/mw690/610dc034ly1ffwb7npldpj20u00u076z.jpg"); Url.add("https://ws1.sinaimg.cn/large/610dc034ly1fg5dany6uzj20u011iq60.jpg"); Title = new ArrayList<>(); Title.add("一"); Title.add("二"); Title.add("三"); Title.add("四"); Title.add("五"); //使用Banner banner.setIndicatorGravity(BannerConfig.RIGHT)//圆点显示位置 .setBannerStyle(BannerConfig.CIRCLE_INDICATOR_TITLE).setBannerTitles(Title)//文字 .setImages(Url).setImageLoader(new GlideImageLoader()).setDelayTime(3000).start();//获取图片呈现 //Banner的监听事件 banner.setOnBannerListener(new OnBannerListener() { @Override public void OnBannerClick(int position) { Toast.makeText(MainActivity.this, "点击了第" + Title.get(position).toString() + "张", Toast.LENGTH_SHORT).show(); Intent intent = new Intent(MainActivity.this, PhotoviewActivity.class); intent.putExtra("url", Url.get(position));//传递点击图片网址 startActivity(intent); } }); }}
banner获取图片需要新建一个类继承ImageLoader:
public class GlideImageLoader extends ImageLoader { @Override public void displayImage(Context context, Object path, ImageView imageView) { Glide.with(context).load(path).into(imageView); }}
xml使用banner依赖控件(控件大小得到呈现图片的大小):
<?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"> <com.youth.banner.Banner android:id="@+id/banner" android:layout_width="match_parent" android:layout_height="250dp" /></LinearLayout>
banner的点击监听事件跳转至PhotoviewActivity(实现photoview图片缩放功能):
public class PhotoviewActivity extends AppCompatActivity { @Bind(R.id.photoview) PhotoView photoview; String Ulr;//接收网址 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_photoview); ButterKnife.bind(this); Ulr = getIntent().getStringExtra("url"); Glide.with(PhotoviewActivity.this).load(Ulr).into(photoview); }}
xml使用photoview依赖控件:
<?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:background="@android:color/black" android:orientation="vertical"> <cn.bluemobi.dylan.photoview.library.PhotoView android:id="@+id/photoview" android:layout_width="match_parent" android:layout_height="match_parent" /></LinearLayout>
实现的gif:(gif图片 瞬间拉大是为了快速展示,节省图片内存.....因为图片上传限制2M)
项目Demo的地址: https://github.com/Small-code-monkey/Viewpicture
阅读全文
0 0
- 安卓开发 轮播图Banner+缩放PhotoView
- 安卓Banner实现轮播图
- 安卓Banner实现轮播图
- 安卓Banner轮播图效果源码
- 安卓banner实现
- Android安卓开发中图片缩放
- 安卓开发入门之图片缩放
- PhotoView 图片缩放框架
- PhotoView ImageView缩放
- PhotoView 图片缩放功能
- 安卓广告图轮播banner
- 安卓-BitMap缩放
- 安卓图片缩放
- photoview-library 图片的缩放
- Android图片缩放框架PhotoView
- PhotoView 图片浏览缩放控件
- PhotoView 图片浏览缩放控件
- PhotoView 图片浏览缩放控件
- eclipse下面的工程打包,放到linux运行
- nyoj 914 Yougth的最大化
- MD5加密
- 迭代器模式:将遍历集合的任务交给一个叫做迭代器的对象,它的工作时遍历并选择序列中的对象,而客户端程序员不必知道或关心该集合序列底层的结构*/
- 2017.7.27 计算机编程培训第二天
- 安卓开发 轮播图Banner+缩放PhotoView
- 生成器【建造者】模式:将一个复杂对象的构造与它的表示分离
- 文章标题
- 我与某大型中药企业之间不得不说的事
- 一篇文章搞懂字符集编码
- 详解sqlnet.ora的作用
- java 关于Spring中Aop的简单理解以及SpringBoot如何添加Aop实现步骤
- Ext怎样在上传图片之前预览
- FFmpeg再学习 -- FFmpeg+SDL+MFC实现图形界面视频播放器