Android MultiPhotoContainer多图选择容器 快速发布动态,意见反馈
2016-08-08 11:38
531 查看
这是我第一次在CSDN上发表博客,11年注册过CSDN,不过基本都是copy他人的资源。在这里发现很多牛人,也学到很多知识,近来不忙,常常思绪万千,其中不乏关于Android开发的想法。
我认为优秀的程序员应该是想方设法让自己越来越懒,或者让团队更闲,这样就有更多时间去学习新的知识,或者去发展自己的爱好。这样就要求代码的封装要好,灵活,易用,健壮,这个是好的代码最基本的特点,什么叫极简?就是只要聊聊几行代码,就能实现一个复杂的功能,而且不用担心美观和性能的问题。
MultiPhotoContainer是一个图片选择容器,适用于发布动态,意见反馈,发布需求等,图库展示页面是在github上lovetuzitong/MultiImageSelector基础上做的,MultiImageSelector这个开源库非常不错,打开一个图片选择页面,选择完获得回调的图片路径,比如:
这样通过
就能拿到图片路径
看起来是很方便,但事实上我们好要做不少事,首先要顶一个ViewGroup,然后一个一个addView,展示方式有可能是水平也可能是GridView的网格类型,而且还要删除,浏览,长按抖动等效果,还是要一堆代码啊!居于这个问题,MultiPhotoContainer可以马上搞定!
先说说MultiPhotoContainer的功能吧,当前的为版本1.0,后续会优化和扩展
#Version 1.0
1,可以修改加号按钮,删除按钮的图片,图片的圆角半径
2,可以自定义布局样式,是水平滑动还是以GridView的形式展示
3,可以自定义图片的间距,左右间距和上下间距
4,有长按抖动效果
5,有图片交换功能(待续)
6,有图片浏览功能
如何用呢,往下看(Android Studio)
将multiphoto_container.aar复制到libs下
build.gradle配置
//加入
1 setCompressKbSize //图片大小上限 默认2000KB
2 setCurrentLayoutType //设置布局样式,LayoutType_Horizontal(水平)LayoutType_Vertical(网格)
目标
有没发现这个容器的好处是符合业务逻辑,压缩图片处理,而且使用起来非常方便,对于要发布动态,意见反馈的需求,是不是分分钟搞定?
先来张截图给大家看下效果
代码资源下载链接:
http://download.csdn.net/detail/rocketlong/9597914
我认为优秀的程序员应该是想方设法让自己越来越懒,或者让团队更闲,这样就有更多时间去学习新的知识,或者去发展自己的爱好。这样就要求代码的封装要好,灵活,易用,健壮,这个是好的代码最基本的特点,什么叫极简?就是只要聊聊几行代码,就能实现一个复杂的功能,而且不用担心美观和性能的问题。
MultiPhotoContainer是一个图片选择容器,适用于发布动态,意见反馈,发布需求等,图库展示页面是在github上lovetuzitong/MultiImageSelector基础上做的,MultiImageSelector这个开源库非常不错,打开一个图片选择页面,选择完获得回调的图片路径,比如:
Intent intent = new Intent(this, MultiImageSelectorActivity.class); intent.putExtra(MultiImageSelectorActivity.EXTRA_SHOW_CAMERA, true);//是否展示拍照图片 intent.putExtra(MultiImageSelectorActivity.EXTRA_SELECT_COUNT, 1);//最多选取几张 intent.putExtra(MultiImageSelectorActivity.EXTRA_SELECT_MODE, MultiImageSelectorActivity.MODE_SINGLE);//单选 startActivityForResult(intent, FeedBackActivity.REQUEST_IMAGE);
这样通过
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == REQUEST_IMAGE) { if (resultCode == RESULT_OK) { List<String> path = data.getStringArrayListExtra(MultiImageSelectorActivity.EXTRA_RESULT); } } }
就能拿到图片路径
看起来是很方便,但事实上我们好要做不少事,首先要顶一个ViewGroup,然后一个一个addView,展示方式有可能是水平也可能是GridView的网格类型,而且还要删除,浏览,长按抖动等效果,还是要一堆代码啊!居于这个问题,MultiPhotoContainer可以马上搞定!
先说说MultiPhotoContainer的功能吧,当前的为版本1.0,后续会优化和扩展
#Version 1.0
1,可以修改加号按钮,删除按钮的图片,图片的圆角半径
2,可以自定义布局样式,是水平滑动还是以GridView的形式展示
3,可以自定义图片的间距,左右间距和上下间距
4,有长按抖动效果
5,有图片交换功能(待续)
6,有图片浏览功能
如何用呢,往下看(Android Studio)
将multiphoto_container.aar复制到libs下
build.gradle配置
//加入
repositories { flatDir { dirs'libs' } } dependencies { compile 'com.squareup.picasso:picasso:2.4.0' compile(name:'multiphoto_container', ext:'aar') }attrs.xml中可修改参数
<declare-styleable name="MultiPhotoSelectContainer"> <!-- 图片显示垂直间距 --> <attr name="multiPhoto_vertical_margin" format="dimension" /> <!-- 图片显示水平间距 --> <attr name="multiPhoto_horizontal_margin" format="dimension" /> <!-- 相对于屏幕左边距 --> <attr name="multiPhoto_page_margin_left" format="dimension" /> <!-- 相对于屏幕右边距 --> <attr name="multiPhoto_page_margin_right" format="dimension" /> <!-- 图片显示最大个数,默认9个 --> <attr name="multiPhoto_count" format="integer" /> <!-- 图片显示列数,默认5列 --> <attr name="multiPhoto_colomns" format="integer" /> <!-- 图片显示大小,可自动适配,确保显示全 --> <attr name="multiPhoto_photo_size" format="dimension" /> <!-- 图片显示圆角半径 --> <attr name="multiPhoto_photo_radius" format="dimension" /> <!-- 删除按钮替换资源ID --> <attr name="multiPhoto_delete_resId" format="reference" /> <!-- 增加按钮替换资源ID --> <attr name="multiPhoto_add_resId" format="reference" /> </declare-styleable> 引用
<com.multiphoto.select.MultiPhotoSelectContainer xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/multiphoto_container_select" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@id/usercenter_operation_gridview" android:clipChildren="false" app:multiPhoto_horizontal_margin="5dp" app:multiPhoto_page_margin_left="15dp" app:multiPhoto_page_margin_right="15dp" app:multiPhoto_photo_size="60dp" />Source中可修改
1 setCompressKbSize //图片大小上限 默认2000KB
2 setCurrentLayoutType //设置布局样式,LayoutType_Horizontal(水平)LayoutType_Vertical(网格)
目标
public ArrayList<String> getPhotoList();//得到图片路径列表
有没发现这个容器的好处是符合业务逻辑,压缩图片处理,而且使用起来非常方便,对于要发布动态,意见反馈的需求,是不是分分钟搞定?
先来张截图给大家看下效果
代码资源下载链接:
http://download.csdn.net/detail/rocketlong/9597914
相关文章推荐
- Android实现仿微信朋友圈发布动态(拍照、图库选择、照片压缩、显示、保存、缩略图、点击缩略图删除对应文件等)
- 根据选择动态生成表单暨对kijiji发布信息的研究
- [置顶] Android实现仿微信朋友圈发布动态(拍照、图库选择、照片压缩、显示、保存、缩略图、点击缩略图删除对应文件等)附源码
- 使用.INI文件为输入界面创建“动态帮助” 选择自 trnbo 的 Blog
- [业界动态]瑞萨发布用于手机开发的SH-MobileJ2多媒体加速器平台(转载)
- Effective STL 条款1:仔细选择你的容器 (连载)
- 用文本文件实现的动态实时发布新闻的程序
- 如何选择合适的容器以及其实现品
- Mindsware动态数据对象平台v0.1版发布
- 快速掌握 CrystalReport for .net 选择自 billzhangmingming 的 Blog
- 动态SQL和PL/SQL的EXECUTE IMMEDIATE选项(选择自 NinGoo 的 Blog)
- Effecective STL: 容器 (条款1: 小心选择你的容器)
- 有关TABCONTROL选项卡的动态选择方法
- 发布EasyMD5,方便快速的生成和检查MD5散列
- 动态SQL和PL/SQL的EXECUTE IMMEDIATE选项(选择自 NinGoo 的 Blog)
- 《用水晶报表快速开发VB信息管理系统》开放实验结业学习效果与建议反馈表
- DataGrid连接Access的快速分页法(4)——动态生成SQL语句
- 如何根据下拉列表框的值来给textarea或者其它容器动态的增加内容?
- 动态连接数据库及动态建立ODBC,DSN(ZT) 选择自 SafeF8 的 Blog
- Yahoo发布比较购物搜索引擎(选择自 godttj 的 Blog)