日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android 最简单的自定义证件照Mask之一

發布時間:2024/1/8 Android 57 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android 最简单的自定义证件照Mask之一 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

作者: Jooyer, 時間: 2019.01.08

Github地址,歡迎點贊,fork

現在部分APP都有一個身份認證,一般需要身份證正面,反面,在度娘那也有很多,我發現他們在屬性配置上略少了一些,所以特意寫了一個!,四周線條顏色,間距,粗細都有屬性設置!

本次代碼也是比較簡單,就一個系統的 SurfaceView 和 一個自定義的View, 我就直接貼源碼,如果還有不清楚的,可以留言或者看github

接下來我們依次講解:

  • CameraSufaceView
  • CameraMaskView
  • 屬性及默認值
  • 首先,看看 CameraSufaceView,必要的注釋都有

    package cn.molue.jooyer.masker;import android.app.Activity; import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Matrix; import android.graphics.Rect; import android.hardware.Camera; import android.os.Environment; import android.support.constraint.ConstraintLayout; import android.util.AttributeSet; import android.util.Log; import android.view.Surface; import android.view.SurfaceHolder; import android.view.SurfaceView; import android.widget.Toast;import java.io.BufferedOutputStream; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.util.Date; import java.util.List;/*** @Date 2018/12/29* @Desc 相機預覽界面*/ public class CameraSurfaceView extends SurfaceView implements SurfaceHolder.Callback, Camera.AutoFocusCallback {private static final String TAG = "CameraSurfaceView";private SurfaceHolder holder;private Camera mCamera;private Rect mCenterMarkRect;private int mScreenWidth;private int mScreenHeight;private File mFile;private OnPathChangedListener onPathChangedListener;public void setOnPathChangedListener(OnPathChangedListener onPathChangedListener) {this.onPathChangedListener = onPathChangedListener;}public CameraSurfaceView(Context context) {this(context, null);}public CameraSurfaceView(Context context, AttributeSet attrs) {this(context, attrs, 0);}public CameraSurfaceView(Context context, AttributeSet attrs, int defStyleAttr) {super(context, attrs, defStyleAttr);getScreenMetrix(context);initView();}//拿到手機屏幕大小private void getScreenMetrix(Context context) {mScreenWidth = context.getResources().getDisplayMetrics().widthPixels;mScreenHeight = context.getResources().getDisplayMetrics().heightPixels;}private void initView() {//獲得surfaceHolder引用holder = getHolder();// 屏幕常亮holder.setKeepScreenOn(true);//為SurfaceView的句柄添加一個回調函數holder.addCallback(this);// holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);//設置類型}// 在surface創建后立即被調用。在開發自定義相機時,可以通過重載這個函數調用camera.open()、camera.setPreviewDisplay(),// 來實現獲取相機資源、連接camera和surface等操作@Overridepublic void surfaceCreated(SurfaceHolder holder) {Log.i(TAG, "surfaceCreated");if (mCamera == null) {mCamera = Camera.open();try {// 設置用于顯示拍照影像的SurfaceHolder對象mCamera.setPreviewDisplay(holder);} catch (IOException e) {e.printStackTrace();}}}// 可以通過重載這個函數調用camera.startPreview來開啟相機預覽,使得camera預覽幀數據可以傳遞給surface,從而實時顯示相機預覽圖像@Overridepublic void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {setCameraParams(mScreenWidth, mScreenHeight);mCamera.startPreview();}@Overridepublic void surfaceDestroyed(SurfaceHolder holder) {mCamera.stopPreview();//停止預覽mCamera.release();//釋放相機資源mCamera = null;}@Overridepublic void onAutoFocus(boolean success, Camera Camera) {}private void setCameraParams(int width, int height) {Log.i(TAG, "------setCameraParams width=" + width + " height=" + height);Camera.Parameters parameters = mCamera.getParameters();// 獲取攝像頭支持的PictureSize列表List<Camera.Size> pictureSizeList = parameters.getSupportedPictureSizes();/**從列表中選取合適的分辨率*/Camera.Size picSize = getProperSize(pictureSizeList, ((float) height / width));if (null == picSize) {Log.i(TAG, "null == picSize");picSize = parameters.getPictureSize();}// 根據選出的PictureSize重新設置SurfaceView大小float w = picSize.width;float h = picSize.height;Log.i(TAG, "----------picSize.width=" + picSize.width + " --- picSize.height=" + picSize.height);// 設置捕獲圖片尺寸parameters.setPictureSize(picSize.width, picSize.height);this.setLayoutParams(new ConstraintLayout.LayoutParams((int) (height * (h / w)), height));// 獲取攝像頭支持的PreviewSize列表List<Camera.Size> previewSizeList = parameters.getSupportedPreviewSizes();Camera.Size preSize = getProperSize(previewSizeList, ((float) height) / width);if (null != preSize) {Log.i(TAG, "----------preSize.width=" + preSize.width + " --- preSize.height=" + preSize.height);// 設置預覽圖片尺寸parameters.setPreviewSize(preSize.width, preSize.height);}parameters.setJpegQuality(100); // 設置照片質量if (parameters.getSupportedFocusModes().contains(Camera.Parameters.FOCUS_MODE_CONTINUOUS_PICTURE)) {parameters.setFocusMode(Camera.Parameters.FOCUS_MODE_CONTINUOUS_PICTURE);// 連續對焦模式}mCamera.cancelAutoFocus();//自動對焦。mCamera.setParameters(parameters);// 計算攝像頭方向Camera.CameraInfo info =new Camera.CameraInfo();Camera.getCameraInfo(0, info);int rotation = ((Activity) getContext()).getWindowManager().getDefaultDisplay().getRotation();int degrees = 0;switch (rotation) {case Surface.ROTATION_0:degrees = 0;break;case Surface.ROTATION_90:degrees = 90;break;case Surface.ROTATION_180:degrees = 180;break;case Surface.ROTATION_270:degrees = 270;break;}int result;if (info.facing == Camera.CameraInfo.CAMERA_FACING_FRONT) {result = (info.orientation + degrees) % 360;result = (360 - result) % 360; // compensate the mirror} else { // back-facingresult = (info.orientation - degrees + 360) % 360;}// 設置PreviewDisplay的方向,效果就是將捕獲的畫面旋轉多少度顯示mCamera.setDisplayOrientation(result);}/*** 從列表中選取合適的分辨率* 默認w:h = 4:3* <p>注意:這里的w對應屏幕的height* h對應屏幕的width<p/>*/private Camera.Size getProperSize(List<Camera.Size> pictureSizeList, float screenRatio) {Log.i(TAG, "screenRatio=" + screenRatio);Camera.Size result = null;for (Camera.Size size : pictureSizeList) {float currentRatio = ((float) size.width) / size.height;if (currentRatio - screenRatio == 0) {result = size;break;}}if (null == result) {for (Camera.Size size : pictureSizeList) {float curRatio = ((float) size.width) / size.height;if (curRatio == 4f / 3) {// 默認w:h = 4:3result = size;break;}}}return result;}// 拍照瞬間調用 (添加這個才會有咔嚓聲)private Camera.ShutterCallback shutter = new Camera.ShutterCallback() {@Overridepublic void onShutter() {}};// 獲得沒有壓縮過的圖片數據private Camera.PictureCallback raw = new Camera.PictureCallback() {@Overridepublic void onPictureTaken(byte[] data, Camera Camera) {}};//創建jpeg圖片回調數據對象private Camera.PictureCallback jpeg = new Camera.PictureCallback() {private Bitmap bitmap;@Overridepublic void onPictureTaken(byte[] data, Camera Camera) {BufferedOutputStream bos = null;Bitmap bm = null;if (data != null) {}try {// 獲得圖片bm = BitmapFactory.decodeByteArray(data, 0, data.length);if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {// 圖片存儲前旋轉Matrix m = new Matrix();int height = bm.getHeight();int width = bm.getWidth();m.setRotate(90);//旋轉后的圖片bitmap = Bitmap.createBitmap(bm, 0, 0, width, height, m, true);String photo = "IMMQY/IMG_" + String.valueOf(new Date().getTime() + ".jpg");mFile = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM).getAbsolutePath(), photo);if (!mFile.getParentFile().exists()) {mFile.getParentFile().mkdirs();}bos = new BufferedOutputStream(new FileOutputStream(mFile));if (null == mCenterMarkRect) {throw new NullPointerException("mCenterMarkRect is not null");}Bitmap sizeBitmap = Bitmap.createScaledBitmap(bitmap,mScreenWidth, mScreenHeight, true);// 截取bm = Bitmap.createBitmap(sizeBitmap,mCenterMarkRect.left, mCenterMarkRect.top,mCenterMarkRect.right - mCenterMarkRect.left,mCenterMarkRect.bottom - mCenterMarkRect.top);bm.compress(Bitmap.CompressFormat.JPEG, 100, bos);//將圖片壓縮到流中} else {Toast.makeText(getContext(), "沒有檢測到內存卡", Toast.LENGTH_SHORT).show();}} catch (Exception e) {e.printStackTrace();} finally {try {bos.flush();//輸出bos.close();//關閉bm.recycle();// 回收bitmap空間mCamera.stopPreview();// 關閉預覽mCamera.startPreview();// 開啟預覽if (onPathChangedListener != null) {onPathChangedListener.onValueChange(mFile.getPath());}} catch (IOException e) {e.printStackTrace();}}}};/*** 拍照*/public void takePicture() {//設置參數,并拍照setCameraParams(mScreenWidth, mScreenHeight);// 當調用camera.takePiture方法后,camera關閉了預覽,這時需要調用startPreview()來重新開啟預覽mCamera.takePicture(shutter, null, jpeg);}public void setAutoFocus() {mCamera.autoFocus(this);}public void setCenterMarkRect(Rect centerMarkRect) {this.mCenterMarkRect = centerMarkRect;}public interface OnPathChangedListener {void onValueChange(String path);}}復制代碼

    然后我們來瞧瞧 CameraMaskView ,其實這里就是將四周擋住,留下中間位置作為拍照的具體內容

    package cn.molue.jooyer.masker;import android.content.Context; import android.content.res.TypedArray; import android.graphics.Canvas; import android.graphics.Paint; import android.graphics.Rect; import android.util.AttributeSet; import android.util.TypedValue; import android.view.View;/*** @Date 2018/12/29* @Time 11:37*/ public class CameraMaskView extends View {// 默認如果方框布局中時距離上面尺寸private static final int MASK_MARGIN = 100;// 默認線寬private static final int LINE_WIDTH = 5;// 默認線長private static final int LINE_LENGTH = 40;// 默認線外邊距private static final int LINE_MARGIN = 10;// 默認線內邊距private static final int LINE_PADDING = 5;// 默認提示文本private static final String TEXT = "請將身份證置于此框內";// 控件的寬高private int viewWidth;private int viewHeight;// 中間透明區域(方框)寬高public int rectWidth;public int rectHeight;// 提示文本private String mTipText = "";// 文本顏色private int mTipTextColor = 0;// 文本大小private int mTipTextSize = 0;// 文本距離底部 遮罩框 間隔private int mTipMargin = 0;// 中間透明區域(方框)坐標private Rect mCenterMarkRect = new Rect();// 遮罩顏色private int mMaskColor = 0;// 遮罩是居中,還是居上private int mMaskPosition = 0;private int mMaskMargin = 0;// 四周線條長度private int mLineLength;// 四周線條寬度(厚度)private int mLineWidth;private int mLineColor = 0;private int mLinePadding = 0;private int mLineMargin = 0;// 文字畫筆private Paint maskPaint;// 線條畫筆private Paint linePaint;// 文字畫筆private Paint wordPaint;// 計算提示文本的位置的private Rect rect;// 文本基線private int baseline;public CameraMaskView(Context context, AttributeSet attrs) {super(context, attrs);parse(context, attrs);init(context);}private void parse(Context context, AttributeSet attrs) {TypedArray array = context.obtainStyledAttributes(attrs, R.styleable.CameraMaskView);mMaskMargin = (int) array.getDimension(R.styleable.CameraMaskView_cmv_mask_margin, MASK_MARGIN);mMaskPosition = array.getInt(R.styleable.CameraMaskView_cmv_position_flag, 0);mMaskColor = array.getColor(R.styleable.CameraMaskView_cmv_mask_color, 0xa0000000);mTipText = array.getString(R.styleable.CameraMaskView_cmv_tip_text);if (null == mTipText || mTipText.isEmpty()) {mTipText = TEXT;}mTipTextColor = array.getColor(R.styleable.CameraMaskView_cmv_tip_color, 0xFFFFFFFF);mTipTextSize = (int) array.getDimension(R.styleable.CameraMaskView_cmv_tip_size, sp2px(context, 14));mTipMargin = (int) array.getDimension(R.styleable.CameraMaskView_cmv_tip_margin, dp2px(context, 20));mLineColor = array.getColor(R.styleable.CameraMaskView_cmv_line_color, 0xFF85D28A);mLineWidth = (int) array.getDimension(R.styleable.CameraMaskView_cmv_line_width, dp2px(context, LINE_WIDTH));mLineLength = (int) array.getDimension(R.styleable.CameraMaskView_cmv_line_length, dp2px(context, LINE_LENGTH));mLinePadding = (int) array.getDimension(R.styleable.CameraMaskView_cmv_line_padding, dp2px(context, LINE_PADDING));mLineMargin = (int) array.getDimension(R.styleable.CameraMaskView_cmv_line_margin, dp2px(context, LINE_MARGIN));array.recycle();}private void init(Context context) {viewWidth = context.getResources().getDisplayMetrics().widthPixels;viewHeight = context.getResources().getDisplayMetrics().heightPixels;rectWidth = viewWidth - dp2px(context, 2 * mLineMargin);// 身份證 長度85.6mm,寬度54mmrectHeight = (int) (rectWidth * 54 / 85.6);if (1 == mMaskPosition) {mCenterMarkRect.left = (viewWidth - rectWidth) / 2;mCenterMarkRect.top = mMaskMargin;mCenterMarkRect.right = mCenterMarkRect.left + rectWidth;mCenterMarkRect.bottom = mMaskMargin + rectHeight;} else {mCenterMarkRect.left = (viewWidth - rectWidth) / 2;mCenterMarkRect.top = (viewHeight - rectHeight) / 2;mCenterMarkRect.right = mCenterMarkRect.left + rectWidth;mCenterMarkRect.bottom = mCenterMarkRect.top + rectHeight;}linePaint = new Paint();linePaint.setAntiAlias(true);linePaint.setColor(mLineColor);linePaint.setStyle(Paint.Style.STROKE);linePaint.setStrokeWidth(mLineWidth);// 設置線寬linePaint.setAlpha(255);maskPaint = new Paint(Paint.ANTI_ALIAS_FLAG);maskPaint.setColor(mMaskColor);wordPaint = new Paint(Paint.ANTI_ALIAS_FLAG);wordPaint.setColor(mTipTextColor);wordPaint.setTextSize(mTipTextSize);rect = new Rect(mCenterMarkRect.left, mCenterMarkRect.top - mTipTextSize - mTipMargin,mCenterMarkRect.right, mCenterMarkRect.top - mTipMargin);Paint.FontMetricsInt fontMetrics = wordPaint.getFontMetricsInt();baseline = rect.top + (rect.bottom - rect.top - fontMetrics.bottom + fontMetrics.top) / 2 - fontMetrics.top;wordPaint.setTextAlign(Paint.Align.CENTER);}@Overridepublic void onDraw(Canvas canvas) {super.onDraw(canvas);if (1 == mMaskPosition) {// 頂部蒙層canvas.drawRect(0, 0, viewWidth, mMaskMargin, maskPaint);// 左側canvas.drawRect(0, mMaskMargin, (viewWidth - rectWidth) / 2, mMaskMargin + rectHeight, maskPaint);// 右側canvas.drawRect(viewWidth - (viewWidth - rectWidth) / 2, mMaskMargin, viewWidth, mMaskMargin + rectHeight, maskPaint);// 底部蒙層canvas.drawRect(0, mMaskMargin + rectHeight, viewWidth, viewHeight, maskPaint);} else {// 頂部蒙層canvas.drawRect(0, 0, viewWidth, viewHeight / 2 - rectHeight / 2, maskPaint);// 左側canvas.drawRect(0, viewHeight / 2 - rectHeight / 2, (viewWidth - rectWidth) / 2, viewHeight / 2 + rectHeight / 2, maskPaint);// 右側canvas.drawRect(viewWidth - (viewWidth - rectWidth) / 2, viewHeight / 2 - rectHeight / 2, viewWidth, viewHeight / 2 + rectHeight / 2, maskPaint);// 底部蒙層canvas.drawRect(0, viewHeight / 2 + rectHeight / 2, viewWidth, viewHeight, maskPaint);}// 繪制文字canvas.drawText(mTipText, rect.centerX(), baseline, wordPaint);// 繪制四個角canvas.drawLine(mCenterMarkRect.left - dp2px(getContext(), mLinePadding) - mLineWidth / 2.0F, mCenterMarkRect.top - dp2px(getContext(), mLinePadding),mCenterMarkRect.left + mLineLength, mCenterMarkRect.top - dp2px(getContext(), mLinePadding), linePaint);canvas.drawLine(mCenterMarkRect.left - dp2px(getContext(), mLinePadding), mCenterMarkRect.top - dp2px(getContext(), mLinePadding),mCenterMarkRect.left - dp2px(getContext(), mLinePadding), mCenterMarkRect.top + mLineLength, linePaint);canvas.drawLine(mCenterMarkRect.right - mLineLength, mCenterMarkRect.top - dp2px(getContext(), mLinePadding),mCenterMarkRect.right + dp2px(getContext(), mLinePadding) + mLineWidth / 2.0F, mCenterMarkRect.top - dp2px(getContext(), mLinePadding), linePaint);canvas.drawLine(mCenterMarkRect.right + dp2px(getContext(), mLinePadding), mCenterMarkRect.top - dp2px(getContext(), mLinePadding),mCenterMarkRect.right + dp2px(getContext(), mLinePadding), mCenterMarkRect.top + mLineLength, linePaint);canvas.drawLine(mCenterMarkRect.left - dp2px(getContext(), mLinePadding), mCenterMarkRect.bottom - mLineLength,mCenterMarkRect.left - dp2px(getContext(), mLinePadding), mCenterMarkRect.bottom + dp2px(getContext(), mLinePadding) + mLineWidth / 2.0F, linePaint);canvas.drawLine(mCenterMarkRect.left - dp2px(getContext(), mLinePadding), mCenterMarkRect.bottom + dp2px(getContext(), mLinePadding),mCenterMarkRect.left + mLineLength, mCenterMarkRect.bottom + dp2px(getContext(), mLinePadding), linePaint);canvas.drawLine(mCenterMarkRect.right - mLineLength, mCenterMarkRect.bottom + dp2px(getContext(), mLinePadding),mCenterMarkRect.right + dp2px(getContext(), mLinePadding) + mLineWidth / 2.0F, mCenterMarkRect.bottom + dp2px(getContext(), mLinePadding), linePaint);canvas.drawLine(mCenterMarkRect.right + dp2px(getContext(), mLinePadding), mCenterMarkRect.bottom - mLineLength,mCenterMarkRect.right + dp2px(getContext(), mLinePadding), mCenterMarkRect.bottom + dp2px(getContext(), mLinePadding), linePaint);}public Rect getCenterMarkRect() {return mCenterMarkRect;}private int dp2px(Context context, float dpValue) {return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dpValue, context.getResources().getDisplayMetrics());}private int sp2px(Context context, int dpValue) {return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, dpValue, context.getResources().getDisplayMetrics());}} 復制代碼

    來看看自定義的屬性(xml文件)

    里面就是一大堆自定義的屬性,具體含義往下看

    <?xml version="1.0" encoding="utf-8"?> <resources><declare-styleable name="CameraMaskView"><!-- 蒙層顏色 --><attr name="cmv_mask_color" format="color|reference" /><!-- 提示文本 --><attr name="cmv_tip_text" format="string|reference" /><!-- 文字顏色 --><attr name="cmv_tip_color" format="color|reference" /><!-- 文字大小 --><attr name="cmv_tip_size" format="integer|dimension" /><!-- 文字底部距離方框的間隔 --><attr name="cmv_tip_margin" format="integer|dimension" /><!-- 邊線顏色 --><attr name="cmv_line_color" format="color|reference" /><!-- 邊線寬度(厚度) --><attr name="cmv_line_width" format="integer|dimension" /><!-- 邊線長度 --><attr name="cmv_line_length" format="integer|dimension" /><!-- 邊線與內部透明方框的間隔 --><attr name="cmv_line_padding" format="integer|dimension" /><!-- 邊線與外面手機屏幕邊框的間隔 --><attr name="cmv_line_margin" format="integer|dimension"/><!-- 默認方框是劇中的 --><attr name="cmv_position_flag"><enum name="center" value="0"/><enum name="margin" value="1"/></attr><!-- 只有當設置了 cmv_position_flag = margin 才有效 --><attr name="cmv_mask_margin" format="integer|dimension"/></declare-styleable></resources> 復制代碼

    屬性雖然有些多,但是大都都見名知意.

    最后來看看在 Activity 布局中的用法

    <?xml version="1.0" encoding="utf-8"?> <android.support.constraint.ConstraintLayoutxmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".CameraActivity"><cn.molue.jooyer.masker.CameraSurfaceViewandroid:id="@+id/camera_surface_view"android:layout_width="0dp"android:layout_height="0dp"app:layout_constraintBottom_toBottomOf="parent"app:layout_constraintLeft_toLeftOf="parent"app:layout_constraintRight_toRightOf="parent"app:layout_constraintTop_toTopOf="parent"/><cn.molue.jooyer.masker.CameraMaskViewandroid:id="@+id/camera_rect_view"android:layout_width="0dp"android:layout_height="0dp"app:cmv_line_color="#85D28A"app:cmv_line_length="40dp"app:cmv_line_margin="10dp"app:cmv_line_padding="2dp"app:cmv_line_width="2dp"app:cmv_mask_color="#FF76635A"app:cmv_mask_margin="80dp"app:cmv_position_flag="margin"app:cmv_tip_color="#FFFFFF"app:cmv_tip_margin="40dp"app:cmv_tip_size="15sp"app:cmv_tip_text="請將身份證頭像面置于此框內"app:layout_constraintBottom_toBottomOf="parent"app:layout_constraintLeft_toLeftOf="parent"app:layout_constraintRight_toRightOf="parent"app:layout_constraintTop_toTopOf="parent"/><Viewandroid:id="@+id/view_background"android:layout_width="0dp"android:layout_height="123dp"android:background="#FF2F2A28"app:layout_constraintBottom_toBottomOf="parent"app:layout_constraintLeft_toLeftOf="parent"app:layout_constraintRight_toRightOf="parent"/><TextViewandroid:id="@+id/text_view_cancel"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginBottom="33dp"android:layout_marginEnd="50dp"android:padding="18dp"android:gravity="center_vertical"android:text="取消"android:textColor="#FFF"android:textSize="14sp"app:layout_constraintBottom_toBottomOf="parent"app:layout_constraintRight_toLeftOf="@id/image_view_take"/><ImageViewandroid:id="@+id/image_view_take"android:layout_width="60dp"android:layout_height="60dp"android:background="@drawable/camera_take_background"android:layout_marginBottom="30dp"app:layout_constraintBottom_toBottomOf="parent"app:layout_constraintLeft_toLeftOf="parent"app:layout_constraintRight_toRightOf="parent"/></android.support.constraint.ConstraintLayout> 復制代碼

    這個就不解釋了,最后看看 Activity中的操作

    package cn.molue.jooyer.masker;import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.ImageView; import android.widget.TextView; import android.widget.Toast;/*** @Author Jooyer* @Date 2018/01/08* @Time 14.27*/ public class CameraActivity extends AppCompatActivity {private CameraSurfaceView cameraSurfaceView;private CameraMaskView cameraRectView;private TextView tvCancel;private ImageView ivTake;@Overrideprotected void onCreate(@Nullable Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_camera);findView();initListener();}private void findView() {tvCancel = findViewById(R.id.text_view_cancel);ivTake = findViewById(R.id.image_view_take);cameraSurfaceView = findViewById(R.id.camera_surface_view);cameraRectView = findViewById(R.id.camera_rect_view);}@Overridepublic void onWindowFocusChanged(boolean hasFocus) {super.onWindowFocusChanged(hasFocus);// 設置中間預覽大小cameraSurfaceView.setCenterMarkRect(cameraRectView.getCenterMarkRect());}private void initListener() {tvCancel.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {finish();}});ivTake.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {cameraSurfaceView.takePicture();}});cameraSurfaceView.setOnPathChangedListener(new CameraSurfaceView.OnPathChangedListener() {@Overridepublic void onValueChange(String path) {Toast.makeText(CameraActivity.this, path, Toast.LENGTH_SHORT).show();}});} } 復制代碼

    記得在使用時申請相機和存儲權限

    喜歡記得點贊,收藏,轉發哈!

    參考地址: blog.csdn.net/github_3784… ,感謝大佬指引!

    總結

    以上是生活随笔為你收集整理的Android 最简单的自定义证件照Mask之一的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    欧美大片www | 亚洲综合视频在线播放 | 天天操操操操操操 | 午夜av片 | 亚洲最大激情中文字幕 | 久久精品亚洲精品国产欧美 | 乱子伦av| 91tv国产成人福利 | 99在线观看免费视频精品观看 | 日韩极品在线 | 国产日产欧美在线观看 | 玖玖视频免费在线 | 最近中文字幕国语免费av | 午夜视频一区二区三区 | 波多野结衣视频一区二区三区 | 亚洲电影自拍 | 亚洲激情综合 | 91麻豆精品国产91久久久久久 | 西西4444www大胆艺术 | 成人亚洲欧美 | 欧美一级片 | 在线视频国产区 | 中文字幕日韩高清 | 天天操网站 | 亚洲国产三级在线 | 日韩中文字幕免费在线观看 | 超碰电影在线观看 | 一区二区三区四区五区在线 | 国产在线毛片 | 日韩精品在线免费播放 | 麻豆成人精品视频 | 国产999精品久久久久久绿帽 | 久久久视屏 | 色婷婷综合激情 | 美女一区网站 | 久久亚洲综合色 | 国产精品一区二区吃奶在线观看 | 亚洲开心激情 | 又黄又爽免费视频 | 国产精品久久久久久a | 午夜天天操| 成人综合日日夜夜 | av电影中文字幕 | 亚洲精品免费观看 | 日韩av电影免费观看 | 久久99亚洲热视 | 麻豆影视在线播放 | 美女视频黄的免费的 | 女人18精品一区二区三区 | 国产99区 | www激情com| 国产无套精品久久久久久 | 9ⅰ精品久久久久久久久中文字幕 | 一区二区三区在线免费播放 | 成人av av在线 | 韩日av一区二区 | 99精品国产福利在线观看免费 | 国产99视频在线观看 | 五月天激情综合网 | 五月天久久激情 | 精品福利在线视频 | 国产精品久久久久久久久久久免费 | 久久精品高清视频 | 99久久精品国产一区二区成人 | 91在线影视 | 韩国三级一区 | 国产在线成人 | 91麻豆网 | 国产高清不卡 | 日本精品久久久久影院 | 91最新视频| 永久免费在线 | 国产小视频免费在线网址 | 91精品一区二区三区蜜臀 | 丝袜美腿在线视频 | 久久久久久久久久久精 | 色婷婷av国产精品 | 国产成人三级 | 国产精品久久久久久久久久久免费 | 国偷自产中文字幕亚洲手机在线 | 久久中文字幕在线视频 | 涩涩网站在线播放 | 天天在线操 | 特级西西www44高清大胆图片 | 手机av在线免费观看 | 国内精品久久久 | 日本h视频在线观看 | 丰满少妇麻豆av | 美女视频黄在线 | 色橹橹欧美在线观看视频高清 | 日韩精品资源 | 国产伦精品一区二区三区… | 三级av片 | 免费精品| 一区二区三区观看 | 福利区在线观看 | 亚洲精品中文字幕在线 | 日本久久精品 | 色丁香婷婷 | 国产午夜精品视频 | 国产精品99精品 | 日韩av一区二区在线影视 | 美女免费黄网站 | 日本黄色大片免费看 | 奇米四色影狠狠爱7777 | 91手机在线看片 | 国产精品黑丝在线观看 | 久久黄色免费视频 | 超碰99人人| 久青草视频在线观看 | 99亚洲精品| 亚州中文av | 国产日产欧美在线观看 | 97人人爽 | 一区二区视频在线看 | 国产精品毛片一区视频播不卡 | 天天干天天做天天操 | 99久久这里有精品 | 天天色宗合 | 色午夜| 99色在线观看视频 | 精品91久久久久 | 91久久精品一区二区三区 | 在线成人看片 | 免费观看一区二区 | 日韩av免费一区二区 | 亚洲婷婷伊人 | 99在线热播 | 日韩网站在线观看 | 婷婷黄色片 | 欧美日韩国产在线精品 | 婷婷丁香综合 | 亚洲精品国产精品国自 | 欧美午夜a| 免费观看av | 国产一级视频在线免费观看 | 中文资源在线播放 | 在线视频一区观看 | 欧美无极色| 热久久这里只有精品 | 18女毛片 | 亚洲精品久久激情国产片 | 日韩在线中文字幕视频 | 日韩特级黄色片 | 激情五月综合网 | 日韩电影在线一区二区 | 国产视频1 | 久久av中文字幕片 | 97视频免费在线看 | 中文字幕在线影视资源 | 中文字幕乱码一区二区 | 97看片网 | 成人av动漫在线 | 97成人精品| 黄色.com| 一色屋精品视频在线观看 | 天天插天天干天天操 | 99操视频| 欧美日韩在线视频观看 | 国产69久久| 日本公妇在线观看高清 | 日本激情视频中文字幕 | 日韩精品在线观看av | 国产精品免费视频网站 | 国产福利一区二区三区视频 | 狠狠色丁香婷婷综合久小说久 | 国产69精品久久久久99尤 | 在线观看中文字幕一区二区 | 亚洲九九精品 | 国产精品成人a免费观看 | 中文字幕人成乱码在线观看 | 99久久精品国产系列 | 中文字幕av日韩 | 日韩在线免费看 | 久久视频这里有久久精品视频11 | 国产黄视频在线观看 | 国产中文字幕网 | 欧美天天综合网 | 成人av地址| www.99在线观看 | 国产精品久久久av久久久 | 天堂中文在线播放 | 日韩在线视频免费播放 | 精品在线一区二区 | 成人动漫一区二区 | 亚洲精品色 | 国产理论在线 | av中文国产 | 美腿丝袜一区二区三区 | av在线免费播放网站 | 国产精品自产拍在线观看 | 日韩欧美精品一区二区三区经典 | 久久综合成人 | 亚洲h色精品 | 日韩电影久久 | 成年人在线免费看视频 | 麻豆94tv免费版 | 久黄色| 四虎影视精品 | 国产91精品一区二区麻豆亚洲 | 成人h电影在线观看 | 国产精品久久久久久久久费观看 | 国产精品第一视频 | 视频 国产区 | 日韩电影在线一区 | 久久午夜色播影院免费高清 | 免费在线播放视频 | 特级西西444www高清大视频 | 国产精品网站一区二区三区 | 亚洲电影成人 | 成人毛片在线视频 | 久久夜视频 | 2021国产在线视频 | 免费a v在线 | 蜜桃av人人夜夜澡人人爽 | 99视频偷窥在线精品国自产拍 | 免费视频一区二区 | 女人18片毛片90分钟 | 久草在线视频在线 | 经典三级一区 | 97电影网手机版 | 日韩精品久久中文字幕 | 九九九九九国产 | 6080yy精品一区二区三区 | 国产精品视频永久免费播放 | 久草视频在线免费播放 | 九草在线视频 | 午夜精品成人一区二区三区 | 午夜在线观看一区 | 免费看的黄网站软件 | 免费电影一区二区三区 | 国产精品成人av电影 | 国产精品99久久久久久有的能看 | 亚洲精品欧洲精品 | av成人免费在线看 | 美女视频国产 | 香蕉色综合 | 日本公乱妇视频 | 一级片免费观看视频 | 日韩av成人 | 国产精品高潮呻吟久久av无 | 国产精品专区h在线观看 | 中文字幕在线观看播放 | 国产精品嫩草影视久久久 | 久久精品一 | 国产精品一区二区三区四区在线观看 | 91精品久久香蕉国产线看观看 | 国产精品18久久久 | 国产精品久久久久久久99 | 一区中文字幕电影 | 国产精品激情在线观看 | 久久新 | 99久久这里有精品 | 九九热在线观看视频 | 九九热精 | 99免费在线观看视频 | 操夜夜操| 久久精品4 | 日韩中文字幕视频在线观看 | 500部大龄熟乱视频 欧美日本三级 | 日韩免费播放 | 国产91精品久久久久久 | 婷婷久久一区二区三区 | 奇米影视8888在线观看大全免费 | 在线a视频免费观看 | 国产精品乱码久久久 | www.黄色| 毛片一区二区 | 日日操夜夜操狠狠操 | 九草在线观看 | 91香蕉国产 | 色欧美日韩 | 99精品视频免费全部在线 | 97精品国产手机 | 香蕉免费在线 | 一区二区三区电影在线播 | 国产三级国产精品国产专区50 | 久久免费中文视频 | 午夜国产福利视频 | 国产成人精品一区在线 | 国产视频久久久久 | 国产精品成人久久久 | 国产日韩精品一区二区在线观看播放 | 午夜影院在线观看18 | 香蕉手机在线 | 亚洲一二三在线 | 在线观看一区 | 免费黄色网址网站 | 在线免费黄色 | 2019国产精品 | 97**国产露脸精品国产 | 人人玩人人添人人 | 九九热有精品 | 国产色小视频 | 久热免费在线 | 国产福利中文字幕 | 色诱亚洲精品久久久久久 | 国产精品激情 | 亚洲天堂精品视频在线观看 | 国产成人精品一区二区三区福利 | 精品一区二区视频 | 亚洲专区中文字幕 | 五月婷婷欧美视频 | 在线观看深夜福利 | 毛片美女网站 | 中文字幕av免费在线观看 | 欧美 日韩精品 | 操久在线 | 在线观看视频在线观看 | 2021国产精品视频 | 成人av在线亚洲 | 国产高清成人在线 | 激情网站网址 | 欧美日一级片 | 亚洲综合丁香 | 国产三级在线播放 | 久久精品91视频 | 97超视频在线观看 | 国产精品嫩草影院9 | 午夜电影久久久 | 人人看人人做人人澡 | 国产精品嫩草在线 | 久久电影网站中文字幕 | 国产精在线 | 黄色电影小说 | 色在线亚洲| 五月综合在线观看 | 麻豆va一区二区三区久久浪 | 久久国产精品网站 | 日本久久久久久久久 | 黄色软件视频大全免费下载 | 999视频在线观看 | 国产精品美女在线观看 | 日韩高清一区 | 欧美激情奇米色 | 韩国av不卡| 一区国产精品 | 国产精品中文字幕在线观看 | 在线天堂8√ | 国产精品第一页在线 | 国内精品久久久久影院一蜜桃 | 国产精品18videosex性欧美 | 国产精品久久久久一区二区国产 | 中文免费 | 欧美嫩草影院 | 国产精品一区二区麻豆 | 91亚洲视频在线观看 | 视频在线精品 | 天天舔天天射天天操 | 成人电影毛片 | 亚洲精品99| 一区二区三区久久精品 | 五月婷婷导航 | 最近高清中文字幕在线国语5 | 97高清视频 | 国内免费的中文字幕 | 国产3p视频| 婷婷激情影院 | 夜夜高潮夜夜爽国产伦精品 | 色在线国产 | 国产精品99视频 | 久久久久夜色 | 天天玩天天操天天射 | 91精品免费在线观看 | 99视频这里有精品 | 日本h视频在线观看 | 在线观看黄色av | 国产91精品一区二区 | 91精品毛片| 91成人亚洲 | 97视频在线观看成人 | 欧美日韩1区2区 | 91成年人视频 | 成人在线免费视频 | 日韩欧美一区二区三区在线观看 | 日韩二区在线播放 | 天天操操 | 久久不卡电影 | 久久午夜免费视频 | 久久免费的视频 | 狠狠色噜噜狠狠狠狠2021天天 | 亚洲精品免费播放 | 天天插综合 | 亚洲小视频在线观看 | 欧美精品生活片 | 91久久丝袜国产露脸动漫 | 日韩在线视频在线观看 | 久久久久久久久久久久亚洲 | 久久艹国产视频 | 成片免费观看视频 | 欧美精品久久99 | 色多多视频在线 | 午夜精品久久久久久久99无限制 | 成人黄色在线观看视频 | 九九色视频 | 久草免费福利在线观看 | 天天色天天操综合 | 日韩欧美综合精品 | 成人福利在线播放 | 最新国产在线视频 | 成人免费共享视频 | 最新国产福利 | 曰本三级在线 | 亚洲我射av | 日韩精品观看 | 国产精品在线看 | 久久国产成人午夜av影院宅 | 国产夫妻性生活自拍 | 日韩艹| 国产在线高清 | 精品视频在线观看 | 国产99久久精品 | 欧美精品v国产精品 | 亚洲精品玖玖玖av在线看 | 精品久久一区二区 | 亚洲精品国产精品国自产观看 | 久久国产电影院 | 91精品国产自产在线观看永久 | 韩日av在线 | www.色五月.com| av免费在线观看1 | 天天操 夜夜操 | 欧洲激情综合 | 国产a高清 | 欧美精品中文字幕亚洲专区 | 免费亚洲婷婷 | 国产精品专区在线 | 亚洲国产中文字幕在线观看 | 国产成人一区二区三区免费看 | 天操夜夜操 | 在线成人一区 | 国产一级一片免费播放放 | 一级片免费观看视频 | 99在线播放| 婷五月天激情 | 亚洲婷婷综合色高清在线 | 最新免费中文字幕 | 日b黄色片 | 9色在线视频| 日韩av影视在线 | 西西www4444大胆视频 | 色综合综合 | 免费能看的av | 久久久精品高清 | 91av蜜桃| 热久久最新地址 | 日韩成人邪恶影片 | 国产成人99av超碰超爽 | 久久天堂亚洲 | 成人三级网站在线观看 | 91麻豆精品国产91久久久使用方法 | 国产99久久久国产精品免费二区 | 99久久久久久国产精品 | 日韩av一卡二卡三卡 | 成年人在线观看免费视频 | 国产精品男女视频 | 77国产精品 | 黄网站色 | 日韩在线短视频 | www.午夜视频| 国产美女精品视频 | 九九99靖品 | 久草a在线| 欧美在线视频一区二区三区 | 日韩免费av片 | 手机在线看片日韩 | 最近中文字幕mv免费高清在线 | 97手机电影网 | 深爱婷婷激情 | www久久九 | 久久久久成人精品免费播放动漫 | av不卡中文 | 国产资源在线视频 | 国产精品久久久电影 | 亚洲成人av影片 | 国产+日韩欧美 | 99久久久久久国产精品 | 日韩在线观看中文 | 手机在线观看国产精品 | 中文字幕在线一二 | 最近中文字幕国语免费av | 狠狠色丁香婷婷综合最新地址 | 日韩精品视频免费看 | 国产视频2| 91网免费看 | 免费看国产黄色 | 一区二区三区观看 | av亚洲产国偷v产偷v自拍小说 | 日本免费一二三区 | 中文字幕第一页av | 蜜臀久久99精品久久久无需会员 | 国产高清av免费在线观看 | 一区二区电影网 | 人人爽人人爽人人爽学生一级 | 欧美日韩不卡在线观看 | 国产婷婷久久 | www免费 | 久久久久亚洲精品 | 午夜视频在线观看一区二区三区 | 不卡av免费在线观看 | 在线免费观看黄色 | 午夜少妇一区二区三区 | 国产一区私人高清影院 | 91九色porny在线 | 玖玖在线免费视频 | 亚洲黄色在线播放 | 国产原厂视频在线观看 | 国产日韩欧美在线影视 | 国产成人精品一二三区 | 欧美尹人 | 91成人破解版 | 国产精品专区在线观看 | 国产精品免费麻豆入口 | 日韩欧美综合视频 | 免费人做人爱www的视 | 免费看的黄色的网站 | 在线直播av | 91在线永久 | 在线国产视频一区 | 婷婷黄色片| 在线观看亚洲视频 | 久草国产在线观看 | 久久视频6| 在线观看91网站 | 日本精品一区二区三区在线播放视频 | 96亚洲精品久久久蜜桃 | 国产欧美久久久精品影院 | 国产精品久久视频 | 欧美日韩在线播放一区 | 国内外激情视频 | 亚洲高清资源 | 美女久久久久 | 国产1区2区3区在线 亚洲自拍偷拍色图 | av免费片 | 欧美精品视| 免费av黄色 | 麻花豆传媒mv在线观看网站 | 亚洲综合精品在线 | japanesefreesex中国少妇 | 国产日韩精品在线 | 狠狠色噜噜狠狠狠狠 | 日韩视频一 | 免费又黄又爽视频 | 久久精品国产一区二区三区 | 一本一本久久a久久精品牛牛影视 | 91禁在线看| 国产精品免费看久久久8精臀av | 国产又粗又猛又色 | 亚洲污视频 | 综合成人在线 | 一区二区三区四区五区在线 | av综合av| 久久99久久99精品免观看粉嫩 | 中文字幕一区二区三区四区视频 | 久久久久一区 | 91黄色在线观看 | 免费试看一区 | 国产破处视频在线播放 | 一本—道久久a久久精品蜜桃 | 手机看片国产日韩 | 亚洲天堂免费视频 | 天天在线免费视频 | 欧美视频xxx| 久久草在线精品 | 国产在线播放一区二区三区 | 在线播放第一页 | 欧美视频国产视频 | 日韩精品中文字幕久久臀 | 午夜精品一区二区三区可下载 | 中文在线www | 国产在线观看地址 | 国产精品日韩久久久久 | 狠狠操91| 操碰av | 一本到在线 | 国产精品久久在线观看 | 久久国产露脸精品国产 | 天天摸夜夜操 | 日本久久久久久 | 色吊丝在线永久观看最新版本 | 欧美看片 | 91视频在线免费下载 | 亚洲日本va午夜在线电影 | 成人黄色大片在线免费观看 | 人人dvd | 免费一级特黄录像 | 91探花系列在线播放 | 中文字幕在线影院 | 97视频在线观看视频免费视频 | 久av电影| 激情综合亚洲 | aaa日本高清在线播放免费观看 | 国内免费的中文字幕 | 亚洲草视频 | 中文字幕中文中文字幕 | 欧美一二三区在线观看 | 欧美一级电影 | 波多野结衣在线观看视频 | 狠狠网站 | 久久久久久久久久影视 | 西西www444| 91精品福利在线 | 91在线一区二区 | 久久久久在线观看 | 狂野欧美激情性xxxx欧美 | 色视频成人在线观看免 | av线上免费观看 | 亚洲成人免费在线 | 免费视频一区 | 中文乱码视频在线观看 | 国产电影黄色av | 天天操天天摸天天干 | 国产精品久久久久久久久久了 | 欧美一级性生活视频 | 精品一区二区在线播放 | 在线欧美最极品的av | 久久精品这里都是精品 | 日韩精品免费一线在线观看 | 永久av免费在线观看 | 狠狠操夜夜| 精品久久网站 | 国产精品美女视频网站 | 一区免费观看 | 日韩免费视频观看 | av成人资源 | 在线视频欧美日韩 | 精品国产视频在线 | 久久噜噜少妇网站 | 欧美激情亚洲综合 | 婷婷久久网站 | 色五丁香 | 久久99国产精品久久 | 人人揉人人揉人人揉人人揉97 | 丁香六月天 | 色姑娘综合天天 | 精品视频123区在线观看 | 亚洲丝袜一区二区 | 久久国产电影 | 午夜久久影视 | 在线中文字幕网站 | 日韩高清免费在线观看 | av中文在线影视 | 成人小电影在线看 | 婷婷视频在线 | 免费看的毛片 | 日日日天天天 | 亚洲视频综合在线 | 丁香激情综合 | 麻豆视频在线免费 | www.色午夜| 日韩成人在线一区二区 | 久久久久久久久久久久久久电影 | 国产1级毛片 | 国产91精品久久久久久 | 99国产精品久久久久久久久久 | 午夜久久久精品 | 色视频网站在线 | 免费黄色av片| 天天干天天干天天操 | 天天做天天爱夜夜爽 | 最新国产精品亚洲 | 婷婷中文字幕综合 | 国产一级二级在线观看 | 日韩在线观看网址 | 久久久久久久毛片 | 成人黄色在线播放 | 不卡电影免费在线播放一区 | 中文字幕婷婷 | 中字幕视频在线永久在线观看免费 | 国产福利资源 | 久久午夜国产 | 综合网天天射 | 男女精品久久 | 黄a在线观看 | 国产精品久久久久久久久久久久久久 | 欧美日韩国产一区 | 久久精品国产成人精品 | 午夜在线免费观看视频 | 亚洲天堂在线观看完整版 | 久久视奸| 五月激情丁香 | 国产成人精品免高潮在线观看 | 国产精品久久电影网 | 在线看片中文字幕 | 国内精品久久久久久久影视麻豆 | 亚洲精品激情 | 国产精品欧美久久久久久 | 97高清视频 | 九九久久视频 | 97国产精品免费 | 九色自拍视频 | 中文字字幕在线 | 天天干.com| 国产99久久久精品视频 | 91精品资源 | 国产亚洲欧美日韩高清 | 在线欧美最极品的av | 亚洲电影在线看 | 亚洲成人二区 | 国产精品久久久久久久午夜片 | 国产精品入口麻豆 | 97精品欧美91久久久久久 | 免费一级日韩欧美性大片 | 69国产精品成人在线播放 | 久草国产在线观看 | 国产精品久久久久久高潮 | 99久久精品国产亚洲 | 国产一区久久久 | 日韩黄色免费在线观看 | 亚洲午夜精品一区二区三区电影院 | 亚洲五月| 精品在线视频一区二区三区 | 狠狠狠狠狠狠干 | 欧美日韩国产网站 | 久久电影中文字幕视频 | 99精品一区 | 日韩在线电影观看 | 欧美巨大荫蒂茸毛毛人妖 | 久久久久久久久毛片精品 | 亚洲爱av| 亚洲视频免费在线观看 | 丁香婷婷综合激情 | 国产精品aⅴ | 国偷自产中文字幕亚洲手机在线 | 激情五月婷婷激情 | av成人免费| 午夜久久影院 | 久久久免费精品视频 | 国产一区二区在线播放 | 人人爱人人舔 | 国产伦精品一区二区三区四区视频 | 高清国产一区 | 久久久久国产精品一区二区 | 国产亚洲精品久久久久久久久久 | 午夜av一区二区三区 | 成人h视频在线播放 | 涩av在线| 欧美色精品天天在线观看视频 | 日韩欧美99| 九色porny真实丨国产18 | 色婷婷综合视频在线观看 | 成人在线视频免费看 | 在线观看中文字幕亚洲 | 在线免费av观看 | 国产精品高潮呻吟久久av无 | 激情综合狠狠 | 丰满少妇在线观看资源站 | 91精品秘密在线观看 | 精品国产美女 | 深夜福利视频在线观看 | 国产黄色资源 | 久久久久久久久久久久99 | 在线观看日韩av | 久久精品久久精品久久精品 | 久久一及片 | 天天舔夜夜操 | 久久精品99久久久久久2456 | 日韩综合一区二区三区 | 久久99热这里只有精品国产 | 天堂在线免费视频 | 国产精品女| 色婷婷成人网 | 国产精品国产精品 | 婷婷精品国产一区二区三区日韩 | 精品免费| 成人少妇影院yyyy | 五月婷婷综合网 | 超碰在线免费福利 | 69xx视频 | 视频在线99 | 亚洲免费在线观看视频 | 国产精品999久久久 久产久精国产品 | 日韩精品视频免费 | 免费看一级黄色 | 婷婷丁香花五月天 | 99久久精品午夜一区二区小说 | 蜜臀av免费一区二区三区 | 五月在线 | 啪啪动态视频 | 亚洲精品成人av在线 | 欧洲精品视频一区 | 免费观看www小视频的软件 | 在线观看免费高清视频大全追剧 | 最近高清中文在线字幕在线观看 | 激情av网 | 一级国产视频 | 成人免费看片网址 | 亚洲精品免费观看视频 | 婷婷丁香狠狠爱 | 欧美最猛性xxxxx免费 | 蜜桃麻豆www久久囤产精品 | 中文字幕一区二区在线观看 | 日本中文字幕影院 | 亚洲天天在线日亚洲洲精 | 国产精品人成电影在线观看 | 免费观看久久 | 91视频久久| 在线av资源 | 91在线网址 | 国产一区二区精品久久 | 欧美日韩国产一区二区在线观看 | 婷婷精品国产一区二区三区日韩 | 激情 一区二区 | 日韩电影一区二区在线观看 | 欧美黑人猛交 | 亚洲欧美日本一区二区三区 | 国产黄色网| 婷婷丁香自拍 | 日本中文乱码卡一卡二新区 | 久久亚洲欧美日韩精品专区 | 久草在线中文视频 | 国产精品区一区 | 国产精品国产精品 | 99色99| 日本成人免费在线观看 | 在线日韩亚洲 | 在线欧美国产 | 又黄又爽又刺激的视频 | 国产成人三级一区二区在线观看一 | 免费视频黄色 | 日韩欧美在线视频一区二区 | 日韩成人高清在线 | 正在播放久久 | 欧美色黄| 精品国产伦一区二区三区观看体验 | 美女视频黄是免费的 | 97免费视频在线 | 久久久久9999亚洲精品 | 视频一区视频二区在线观看 | 午夜免费视频网站 | 亚洲男人天堂a | a√国产免费a | 国产精品av在线 | 国产无套精品久久久久久 | 亚洲精品在线观看av | 天天干夜夜爽 | 在线观看视频97 | 九九综合九九综合 | 中文字幕在线观看第一页 | 色婷婷狠狠18 | 成人精品一区二区三区电影免费 | 久久天天综合网 | 日日爱夜夜爱 | 亚洲欧美一区二区三区孕妇写真 | 亚洲精品色婷婷 | 欧美日本在线观看视频 | av在线电影播放 | 六月丁香在线观看 | 欧美激情视频一区二区三区 | 日韩精品免费一区二区在线观看 | 91九色porny蝌蚪主页 | 亚洲高清资源 | 国产视频在线观看免费 | 成年人免费看av | 色综合久久久久网 | 免费观看性生交大片3 | 国产精品久久久久免费 | 国产97色 | 日本在线视频网址 | 日韩av片无码一区二区不卡电影 | 精品日韩在线 | h文在线观看免费 | 亚洲码国产日韩欧美高潮在线播放 | 超碰97中文| 国产精在线 | 在线观看日本高清mv视频 | 国产专区在线看 | 久久99精品国产99久久6尤 | 91精品免费在线观看 | 91理论电影 | 精品国产精品久久一区免费式 | 成人亚洲精品久久久久 | 欧美性生活免费看 | www.狠狠插.com | 一区二区三区免费看 | 国产91丝袜在线播放动漫 | 欧美日韩精品在线 | 亚洲免费在线观看视频 | 99精品一区二区三区 | 四虎4hu永久免费 | 亚洲码国产日韩欧美高潮在线播放 | 欧美日韩在线视频一区二区 | 国产亚洲一区二区在线观看 | 91精品免费在线视频 | 999成人免费视频 | 在线国产欧美 | 又黄又爽又刺激的视频 | 久久99精品久久只有精品 | 亚洲视频在线免费观看 | 国产真实精品久久二三区 | 国产一区二区网址 | 欧美精品中文字幕亚洲专区 | 五月婷婷播播 | 99r在线播放| 三级黄色三级 | 五月婷婷国产 | 久久国产精品小视频 | 欧美成人精品欧美一级乱黄 | 免费91麻豆精品国产自产在线观看 | 国产一区二区精 | 欧美成人理伦片 | 国产精品久久久久久高潮 | 国产精品99页 | 亚洲高清91| 另类老妇性bbwbbw高清 | 成年人视频在线免费 | 亚洲成人av一区二区 | 91色国产在线 | 91精品视频免费在线观看 | 成人欧美一区二区三区在线观看 | 亚洲一级二级 | 啪啪激情网 | 亚洲视频456 | 日韩黄在线观看 | 日韩r级在线 | 97国产电影 | 韩日精品在线 | 天天躁日日 | 亚洲精品1区2区3区 超碰成人网 | 一区二区三区播放 | 日韩理论电影在线观看 | 免费亚洲精品视频 | 婷婷在线五月 | 九色福利视频 | 丝袜美腿在线播放 | 国产又黄又爽又猛视频日本 | 久久精品电影院 | 色婷婷国产精品一区在线观看 | 日日夜夜天天久久 | 国产视频精品网 | 亚洲精品短视频 | 精品在线视频播放 | 日韩区在线观看 | 一区二区视频免费在线观看 | 这里有精品在线视频 | 久久精品99国产精品亚洲最刺激 | 日b视频在线观看网址 | 久久激情婷婷 | 亚洲国产激情 | av色网站 | 黄色毛片在线看 | 东方av在线免费观看 | 99视频久久| 五月婷婷综合网 | 天天色综合天天 | 91精彩在线视频 | 日韩,精品电影 | 一区二区三区在线电影 | 久草影视在线 | 亚洲综合视频在线 | 9色在线视频 | 亚洲无吗av | 四虎永久视频 | av中文字幕免费在线观看 | 国产精品扒开做爽爽的视频 | 日韩av片免费在线观看 | 丁香五月亚洲综合在线 | 成人小视频在线免费观看 | 久青草视频在线观看 | 天天综合成人网 | 国产成人精品999在线观看 | 在线免费黄色av | 狠狠色噜噜狠狠狠合久 | 亚洲a成人v| 在线看片一区 | 国产一区二区在线影院 | 91麻豆精品国产午夜天堂 | 91精品区 | 黄色日本片 | 久久夜色精品国产欧美乱 | 最近日本韩国中文字幕 | 欧美精品一区二区三区四区在线 | av成人免费在线观看 | 最近高清中文在线字幕在线观看 | 成人黄色在线电影 | 黄色影院在线免费观看 | 一级黄网 | 国产成人精品综合久久久久99 | 欧美巨大 | 麻豆91精品91久久久 | 日本视频网 | 中文字幕文字幕一区二区 | 成人在线观看免费视频 | 这里只有精彩视频 | 我爱av激情网 | 麻豆国产在线播放 | 91在线免费播放 | 婷婷网站天天婷婷网站 | 四虎影视欧美 | 久久久久日本精品一区二区三区 | 欧美成人91| 欧美九九九 | 精品一区二区在线免费观看 | 欧美色伊人 | 色六月婷婷 | 色丁香综合 | 国产午夜激情视频 | 成人久久18免费网站麻豆 |