Android控件之 证件照控件 包含模仿微信朋友圈照片浏览

本次带来的是一个证件照控件

功能:可以自定义证件照存储路径、压缩大小、水印文字、水印颜色、水印大小

certificateview

使用说明:

将其添加到存储库末尾的根的build.gradle中:

allprojects {
	repositories {
		...
		maven { url 'https://jitpack.io' }
	}
}

添加依赖关系

dependencies {
        implementation 'com.github.1273700934:certificateview:v1.0'
}

权限要求:

AndroidManifest.xml添加:
<uses-permission android:name="android.permission.CAMERA" />
	<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
	<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />



在demo实例中包含一个权限控制类PermissionsControl 添加权限:

 protected String[] needPermissions = {
        //文件读写
        Manifest.permission.WRITE_EXTERNAL_STORAGE,
        Manifest.permission.READ_EXTERNAL_STORAGE,

        //相机
        Manifest.permission.CAMERA
};

在页面中:

在xml页面根节点加上
xmlns:app="http://schemas.android.com/apk/res-auto"
 
  <com.ding.voicecyber.certificateview.CertificateView
    android:id="@+id/con_id"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:certificate_name="某某证件:"
    app:media_type = "1">
</com.ding.voicecyber.certificateview.CertificateView>
其中 media_type 是要与业务逻辑关联的 表示自定义证件类型

后台属性设置:

    CertificateView certificateView;
    certificateView = findViewById( R.id.con_id );
    certificateView.setActivity( MainActivity.this );
	//设置保存目录 根目录下自动建文件夹 /storage/emulated/0/sample
    certificateView.setRootPath( "sample" );
    //设置照片文件名
    certificateView.setMediaName( "6666" );
    //水印
    certificateView.setWaterText( "天天向上,好好学习" );
   // 水印大小
    certificateView.setWaterSize( 300 );
    //水印颜色
    certificateView.setWaterColor( Color.GREEN );
    //照片压缩
    certificateView.setWaterRatio( 8 );
	
	or(两种设置属性方式)
	
    WaterText waterText = new WaterText();
    waterText.context = MainActivity.this;
    waterText.RootPath =  "sample";
    waterText.WaterTextValue = "天天向上,好好学习";
    waterText.WaterSize = 600;
    waterText.WaterColor = Color.GREEN;
    waterText.WaterRatio = 8;
    waterText.MediaName = "6666";
    certificateView.setWatermarkInfo( waterText );

事物处理:

在Activity中添加:
	
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (resultCode == RESULT_OK) {
        if(requestCode == certificateView.getCAMERAMedia()){
            //保存展示图片 
            certificateView.setReturnImage();
            String front = certificateView.getImage_front_name();//获取正面的照片名
            String front_fullpath = certificateView.getMediaFullName(front);//获取照片绝对路径
            String back = certificateView.getImage_back_name();
            Uri frontUri = ImageCommon.getImageContentUri( MainActivity.this,front_fullpath);//获取该照片Uri
        }
    }
}

附带一个福利:

微信朋友圈图片浏览方式调用

	import com.ding.voicecyber.certificateview.ImageCommon;
		
	//imagepath 图片绝对路径 view当前ImageView视图
	startPathDragPhotoActivity(Activity context, String imagepath, View view)
	
	//imagepath 图片Uri view当前ImageView视图
	startUriDragPhotoActivity(Activity context, String imageUri, View view)

效果展示:




demo下载地址:https://github.com/1273700934/certificateview

感谢:

	https://github.com/githubwing/DragPhotoView.git
	https://github.com/chrisbanes/PhotoView

等开源项目。


原理:下次更新。


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值