当前位置:   article > 正文

Android MultiPhotoContainer多图选择容器 快速发布动态,意见反馈_android 意见反馈多图选择器

android 意见反馈多图选择器

   这是我第一次在CSDN上发表博客,11年注册过CSDN,不过基本都是copy他人的资源。在这里发现很多牛人,也学到很多知识,近来不忙,常常思绪万千,其中不乏关于Android开发的想法。 

我认为优秀的程序员应该是想方设法让自己越来越懒,或者让团队更闲,这样就有更多时间去学习新的知识,或者去发展自己的爱好。这样就要求代码的封装要好,灵活,易用,健壮,这个是好的代码最基本的特点,什么叫极简?就是只要聊聊几行代码,就能实现一个复杂的功能,而且不用担心美观和性能的问题。

MultiPhotoContainer是一个图片选择容器,适用于发布动态,意见反馈,发布需求等,图库展示页面是在github上lovetuzitong/MultiImageSelector基础上做的,MultiImageSelector这个开源库非常不错,打开一个图片选择页面,选择完获得回调的图片路径,比如:

  1. Intent intent = new Intent(this, MultiImageSelectorActivity.class);
  2. intent.putExtra(MultiImageSelectorActivity.EXTRA_SHOW_CAMERA, true);//是否展示拍照图片
  3. intent.putExtra(MultiImageSelectorActivity.EXTRA_SELECT_COUNT, 1);//最多选取几张
  4. intent.putExtra(MultiImageSelectorActivity.EXTRA_SELECT_MODE, MultiImageSelectorActivity.MODE_SINGLE);//单选
  5. startActivityForResult(intent, FeedBackActivity.REQUEST_IMAGE);

这样通过 

  1. @Override
  2. protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  3. super.onActivityResult(requestCode, resultCode, data);
  4. if (requestCode == REQUEST_IMAGE) {
  5. if (resultCode == RESULT_OK) {
  6. List<String> path = data.getStringArrayListExtra(MultiImageSelectorActivity.EXTRA_RESULT);
  7. }
  8. }
  9. }

就能拿到图片路径

看起来是很方便,但事实上我们好要做不少事,首先要顶一个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. repositories {
  2. flatDir {
  3. dirs'libs'
  4. }
  5. }
  6. dependencies {
  7. compile 'com.squareup.picasso:picasso:2.4.0'
  8. compile(name:'multiphoto_container', ext:'aar')
  9. }
    attrs.xml 中可修改参数
   
  1. <declare-styleable name="MultiPhotoSelectContainer">
  2. <!-- 图片显示垂直间距 -->
  3. <attr name="multiPhoto_vertical_margin" format="dimension" />
  4. <!-- 图片显示水平间距 -->
  5. <attr name="multiPhoto_horizontal_margin" format="dimension" />
  6. <!-- 相对于屏幕左边距 -->
  7. <attr name="multiPhoto_page_margin_left" format="dimension" />
  8. <!-- 相对于屏幕右边距 -->
  9. <attr name="multiPhoto_page_margin_right" format="dimension" />
  10. <!-- 图片显示最大个数,默认9个 -->
  11. <attr name="multiPhoto_count" format="integer" />
  12. <!-- 图片显示列数,默认5列 -->
  13. <attr name="multiPhoto_colomns" format="integer" />
  14. <!-- 图片显示大小,可自动适配,确保显示全 -->
  15. <attr name="multiPhoto_photo_size" format="dimension" />
  16. <!-- 图片显示圆角半径 -->
  17. <attr name="multiPhoto_photo_radius" format="dimension" />
  18. <!-- 删除按钮替换资源ID -->
  19. <attr name="multiPhoto_delete_resId" format="reference" />
  20. <!-- 增加按钮替换资源ID -->
  21. <attr name="multiPhoto_add_resId" format="reference" />
  22. </declare-styleable>
  23. 引用
  1. <com.multiphoto.select.MultiPhotoSelectContainer
  2. xmlns:app="http://schemas.android.com/apk/res-auto"
  3. android:id="@+id/multiphoto_container_select"
  4. android:layout_width="match_parent"
  5. android:layout_height="wrap_content"
  6. android:layout_below="@id/usercenter_operation_gridview"
  7. android:clipChildren="false"
  8. app:multiPhoto_horizontal_margin="5dp"
  9. app:multiPhoto_page_margin_left="15dp"
  10. app:multiPhoto_page_margin_right="15dp"
  11. app:multiPhoto_photo_size="60dp"
  12. />
Source中可修改

    1 setCompressKbSize   //图片大小上限 默认2000KB
    2 setCurrentLayoutType //设置布局样式,LayoutType_Horizontal(水平)LayoutType_Vertical(网格)

 目标

public ArrayList<String> getPhotoList();//得到图片路径列表

有没发现这个容器的好处是符合业务逻辑,压缩图片处理,而且使用起来非常方便,对于要发布动态,意见反馈的需求,是不是分分钟搞定?

先来张截图给大家看下效果

代码资源下载链接:

http://download.csdn.net/detail/rocketlong/9597914





声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/运维做开发/article/detail/790900
推荐阅读
相关标签
  

闽ICP备14008679号