当前位置: 首页 > 工具软件 > StickerCamera > 使用案例 >

开源分享 一(StickerCamera + 仿微信多图选择)

胡元忠
2023-12-01
 <pre name="code" class="java">开源分享 一

由于项目需要,后期会在项目中加入给图片贴图或者打标签的功能,无意在网上发现一个类似的开源项目,便在此分享,与大家分享学习。除了该项目外,也同时分享一个仿微信实现多图选择的例子,下面做简单介绍。

一、StickerCamera 
介绍:
一款集成了相机,图片裁剪,给图片贴图,打标签的APP。所需要的编译是 java 8。
运行效果展示:






使用说明:
实现相机功能
实现对图片进行裁剪功能

图片的滤镜功能

能为图片添加贴纸(贴纸可移动,放大,旋转)

能为图片添加标签(同样可以移动)

本地保存制作好的图片,并展示

较多的自定义控件,不错的项目架构

二、仿微信多图选择

介绍:
仿微信实现多图选择。支持 单选 和 多选 两种模式。

运行效果展示:

            

            

使用说明:

一、 把模块 multi-image-selector 作为你的项目依赖添加到工程中.

二、 在你的 AndroidManifest.xml 文件中添加权限 android.permission.READ_EXTERNAL_STORAGE. 别忘了同时在 AndroidManifest.xml 中声明 MultiImageSelectorActivity 这个Activity.

三、 代码中调用
[java] view plain copy print?
Intent intent = new Intent(mContext, MultiImageSelectorActivity.class);  
   
// 是否显示调用相机拍照  
intent.putExtra(MultiImageSelectorActivity.EXTRA_SHOW_CAMERA, true);  
   
// 最大图片选择数量  
intent.putExtra(MultiImageSelectorActivity.EXTRA_SELECT_COUNT, 9);  
   
// 设置模式 (支持 单选/MultiImageSelectorActivity.MODE_SINGLE 或者 多选/MultiImageSelectorActivity.MODE_MULTI)  
intent.putExtra(MultiImageSelectorActivity.EXTRA_SELECT_MODE, MultiImageSelectorActivity.MODE_MULTI);  
   
startActivityForResult(intent, REQUEST_IMAGE);  

四、 在你的 onActivityResult 方法中接受结果
[java] view plain copy print?
@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);  
  
            // 处理你自己的逻辑 ....  
        }  
  
    }  
  
}  

显示自定义Activity
[java] view plain copy print?
class CustomerActivity extends Activity implements MultiImageSelectorFragment.Callback{  
  
    @Override  
    protected void onCreate(Bundle savedInstanceState) {  
  
        // 你自己的逻辑...  
        Bundle bundle = new Bundle();  
        bundle.putInt(MultiImageSelectorFragment.EXTRA_SELECT_COUNT, mDefaultCount);  
        bundle.putInt(MultiImageSelectorFragment.EXTRA_SELECT_MODE, mode);  
        <bundle class="putBo"></bundle>olean(MultiImageSelectorFragment.EXTRA_SHOW_CAMERA, isShow);  
  
        // 添加主Fragment到Activity  
        getSupportFragmentManager().beginTransaction()  
                .add(R.id.image_grid, Fragment.instantiate(this, MultiImageSelectorFragment.class.getName(), bundle))  
                .commit();  
    }  
  
    @Override  
    public void onSingleImageSelected(String path) {  
  
        // 当选择模式设定为 单选/MODE_SINGLE, 这个方法就会接受到Fragment返回的数据  
  
    }  
   
    @Override  
    public void onImageSelected(String path) {  
  
        // 一个图片被选择是触发,这里可以自定义的自己的Actionbar行为  
  
    }  
   
    @Override  
    public void onImageUnselected(String path) {  
  
        // 一个图片被反选是触发,这里可以自定义的自己的Actionbar行为  
  
    }  
   
    @Override  
    public void onCameraShot(File imageFile) {  
  
        // 当设置了使用摄像头,用户拍照后会返回照片文件  
  
    }  
  
}  

注:可参考 MultiImageSelectorActivity.java 的实现。

好了,不多说了。
下载地址:http://download.csdn.net/download/gao_chun/9076993
<img src="https://img-blog.csdn.net/20150904021508200?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />

 类似资料: