日本免费精品_最新日韩一区_亚洲视频一区在线_a在线视频观看_天天射夜夜骑_粉嫩av一区二区三区_欧美中日韩免费视频_综合图区欧美_国内精品美女在线观看_午夜精品久久久久久久男人的天堂

首頁 > 系統 > Android > 正文

android實現簽名功能

2019-11-09 18:05:07
字體:
來源:轉載
供稿:網友

android上的一個簽名功能,先上效果圖

SignActivity.java

package com.cool.hello.sign;import android.Manifest;import android.content.pm.PackageManager;import android.graphics.Bitmap;import android.os.Environment;import android.support.annotation.NonNull;import android.support.v4.app.ActivityCompat;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.Toast;import com.cool.hello.R;import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.OutputStream;import java.security.Permission;public class SignActivity extends AppCompatActivity {    PRivate TouchView mTouchView;    private Bitmap bitmap;    String imagePath;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_sign);        initView();        File externalFilesDir = getExternalFilesDir(Environment.DIRECTORY_PICTURES);        imagePath = externalFilesDir.getAbsolutePath();    }    private void initView() {        mTouchView = (TouchView) findViewById(R.id.touchView);    }    ////////////////////////////////////////////////////////////////////////////    /////////////////////////event handler//////////////////////////////////////    /**     * 保存     * @param view     */    public void save(View view){        bitmap = mTouchView.getBitmap();        if(ActivityCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED){            saveToSdCard();        }else {            ActivityCompat.requestPermissions(this,new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},1);        }    }    private void saveToSdCard() {        File file = new File(imagePath + File.separator + "sign.jpg");        try {            FileOutputStream fileOutputStream = new FileOutputStream(file);            bitmap.compress(Bitmap.CompressFormat.JPEG,70,fileOutputStream);            Toast.makeText(this,"保存成功",Toast.LENGTH_SHORT).show();        } catch (FileNotFoundException e) {            e.printStackTrace();        }    }    /**     * 清空     * @param view     */    public void clear(View view){        mTouchView.clear();    }    /**     * 取消     * @param view     */    public void cancel(View view){        mTouchView.clear();        finish();    }    @Override    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {        super.onRequestPermissionsResult(requestCode, permissions, grantResults);        if(grantResults[0] == PackageManager.PERMISSION_GRANTED){            saveToSdCard();        }else {            Toast.makeText(this,"授權失敗",Toast.LENGTH_SHORT).show();        }    }    ////////////////////////////////////////////////////////////////////////////}activity_sign.xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical">    <com.cool.hello.sign.TouchView        android:id="@+id/touchView"        android:layout_width="match_parent"        android:layout_height="0dp"        android:layout_weight="1" />    <LinearLayout        android:layout_width="match_parent"        android:layout_height="45dp"        android:orientation="horizontal">        <Button            android:layout_width="0dp"            android:layout_height="wrap_content"            android:layout_weight="1"            android:onClick="save"            android:text="保存" />        <Button            android:layout_width="0dp"            android:layout_height="wrap_content"            android:layout_weight="1"            android:onClick="clear"            android:text="清空" />        <Button            android:layout_width="0dp"            android:layout_height="wrap_content"            android:layout_weight="1"            android:onClick="cancel"            android:text="取消" />    </LinearLayout></LinearLayout>TouchView.java

package com.cool.hello.sign;import android.content.Context;import android.graphics.Bitmap;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.graphics.Path;import android.graphics.PorterDuff;import android.util.AttributeSet;import android.view.MotionEvent;import android.view.View;/** * Created by cool on 2017/2/7. */public class TouchView extends View {    private int mWidth;//屏幕的寬    private int mHight;//屏幕的高    private Paint mPaint;    private Path mPath;    private Bitmap mBitmap;    private Canvas mCanvas;    public TouchView(Context context) {        this(context, null);    }    public TouchView(Context context, AttributeSet attrs) {        this(context, attrs, 0);    }    public TouchView(Context context, AttributeSet attrs, int defStyleAttr) {        super(context, attrs, defStyleAttr);        init();    }    private void init() {        mPaint = new Paint();        mPaint.setAntiAlias(true); // 去除鋸齒        mPaint.setStrokeWidth(5);        mPaint.setStyle(Paint.Style.STROKE);        mPaint.setColor(Color.BLACK);        mPath = new Path();    }    @Override    protected void onDraw(Canvas canvas) {        canvas.drawBitmap(mBitmap,0,0,null);        canvas.drawPath(mPath,mPaint);    }    float startX;    float startY;    @Override    public boolean onTouchEvent(MotionEvent event) {        switch (event.getAction()) {            case MotionEvent.ACTION_DOWN:                startX = event.getX();                startY = event.getY();                mPath.moveTo(startX,startY);                break;            case MotionEvent.ACTION_MOVE:                float currentX = event.getX();                float currentY = event.getY();                mPath.lineTo(currentX,currentY);                break;            case MotionEvent.ACTION_UP:                mCanvas.drawPath(mPath,mPaint);                break;        }        invalidate();        return true;    }    public Bitmap getBitmap(){        return mBitmap;    }    public void clear(){        if(mCanvas != null){            mPath.reset();            mCanvas.drawColor(Color.TRANSPARENT, PorterDuff.Mode.CLEAR);            invalidate();        }    }    @Override    protected void onSizeChanged(int w, int h, int oldw, int oldh) {        super.onSizeChanged(w, h, oldw, oldh);        mWidth = w;        mHight = h;        mBitmap = Bitmap.createBitmap(mWidth, mHight, Bitmap.Config.ARGB_8888);        mCanvas = new Canvas(mBitmap);        mCanvas.drawColor(Color.WHITE);    }}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
在线观看国产福利视频| 国产高清在线视频| 欧美日韩亚洲一| 精品婷婷伊人一区三区三| 精品亚洲成a人片在线观看| 精品一二三区| 亚洲视频 中文字幕| 国产绿帽一区二区三区| 日韩欧美高清在线| 亚洲一区日韩精品中文字幕 | 日韩亚洲欧美中文高清在线| 亚洲天堂视频一区 | 欧美成人一区二区| 国产一区深夜福利| 欧美日韩在线不卡| 国产欧美久久久久久久久| 久久精品国产2020观看福利| 免费国产成人看片在线| www.尤物.com| 国产 中文 字幕 日韩 在线| 中文字幕五月欧美| 精品在线一区二区三区| av免费在线观看网址| 91精品视频观看| 国产免费久久久| 日韩三级视频在线看| 韩日中文字幕第一页| 精品亚洲综合| 国产在线视频一区二区| 国产午夜精品视频免费不卡69堂| 日韩在线精品| 国产日韩av高清| 欧美日中文字幕| 精品国产999| 在线资源av| 蜜臀91精品国产高清在线观看| 九九在线精品| 欧美高清一区| 日韩中文字幕91| 国产手机精品视频| 欧美日韩性视频| 日韩欧美久久久| 91精品999| 日韩专区视频网站| 91精品在线观看入口| 欧美日韩综合视频网址| 日韩在线三区| 亚洲高清在线观看一区| 高清中文字幕在线| 亚洲国产www| 91欧美日韩在线| 91日韩中文字幕| 欧美日韩在线精品成人综合网 | 日韩精品视频在线播放| 国产日韩av高清| 一区二区在线看| 中文精品在线观看| 国产亚洲短视频| 91欧美日韩| 日韩免费视频| av手机天堂| 国产日韩精品视频| 日韩欧中文字幕| 国产男女av| 国产一级片播放| 欧美日韩精品免费看| 国产精久久久久| 日韩欧美一级在线| 深夜日韩欧美| 日韩精品中文在线观看| 亚洲制服丝袜一区| 中文字幕 欧美日韩| 午夜国产视频| 欧美片网站免费| 国产欧美一级| 精品欧美久久久| 91精品网站| 黄色一区二区视频| 激情婷婷亚洲| 日韩精品在线免费看| 日韩久久精品成人| 国产丝袜欧美中文另类| 日韩欧美亚洲日产国| 亚洲国内精品视频| 99精品999| 精品日韩av一区二区| 国产日韩成人精品| 欧洲精品久久久| 99久久精品国产成人一区二区| 欧美亚洲国产日韩2020| 一区二区日韩免费看| 亚洲黄色片在线观看| 日韩精品在线视频观看| 久99久视频| 中文字幕在线视频日韩| 亚洲视频色图| 国产亚洲福利| 日本一级一片免费视频| 日韩视频一区二区在线观看| 国产欧美日韩在线观看| 日本亚洲欧美三级| 国产欧美日韩成人| 日韩精品在线观看视频| 日韩午夜一区| 高清日韩中文字幕| 欧美日韩视频免费看| 欧美日韩亚洲一| 欧美日韩国产不卡在线看| 色一区在线观看| 91一区二区| 精品乱人伦一区二区三区| 国产成人精品免费网站| 日本a级黄色| 最新日韩中文字幕| 日韩精品免费观看视频| 日韩在线精品视频| 欧美久久一二三四区| 亚洲尤物av| 欧美三级日韩在线| 欧美不卡视频一区| 日韩视频在线一区二区三区| 69av亚洲| 日韩欧美在线不卡| 一区二区视频在线| 搞黄在线观看| 蜜桃视频一日韩欧美专区| 自拍日韩亚洲一区在线| 欧美激情一区二区在线| 国产中文伊人| 精品成人久久av| 欧美日本精品| 国产午夜精品视频免费不卡69堂| 欧美日韩99| 黄色欧美日韩| 欧美日韩国产中文| 亚洲二区自拍| 在线视频日韩欧美| 国产在线不卡av| 91精品国产91久久久| 国产欧美三级| 中文字幕在线视频久| 日韩亚洲欧美中文在线| 国产在线视频不卡| 91精品国产综合久久精品app| 国产黄在线看| 亚洲视频电影在线| 日韩精品在线免费观看视频| 91久久精品国产| 日本免费看黄| 精品国产免费视频| 天堂精品高清1区2区3区| 欧美日韩综合在线| 国产欧美久久久久久久久| 欧美日韩在线播放一区| a视频免费看| 黄色片免费看| 二区三区不卡不卡视频| 91精品国产综合久久久久久漫画 | 中文字幕在线观看亚洲| 日韩精品视频网站| 中文字幕欧美亚洲| 欧美三级视频在线| 精品国产乱码久久久久久牛牛| 国精品产品一区| 99pao成人国产永久免费视频| 亚洲精品欧美二区三区中文字幕| 日韩av在线中文字幕| 国产欧美久久久精品免费| 日韩视频 中文字幕| 欧美一级欧美三级在线观看| 香蕉人人精品| 免费在线视频一级不卡| 亚洲伊人婷婷| 国产一区精品在线| 国产嫩草影院久久久久| 久久久久久99精品| 欧美中文字幕在线| 大香一本蕉伊线亚洲网| 国产999在线观看| а√天堂中文在线资源8| 伊人伊成久久人综合网小说| 在线看的av| 欧美二三四区| 日韩不卡一二三区| 日韩欧美一级在线播放| 国产999在线观看| 国产一区二中文字幕在线看| 中文字幕在线观看网址| 欧美成人精品在线| 精品中文字幕视频| 欧美人妻一区二区三区| 久久99久久久久| 中文字幕在线视频日韩| 中文字幕第一页在线| 国产乱一区二区| 亚洲免费在线视频一区 二区| 精品一二线国产| 久久久久久久久99精品| 亚洲免费精品视频| 男人的天堂网av| 1区2区3区在线视频| 日韩不卡av| 欧美日韩在线不卡| 中文字幕综合在线| 在线中文字幕视频观看| 亚洲欧美伊人| 日韩精品三级| 久久精品电影| 亚洲综合在线电影| 在线资源av| 在线欧美日韩精品| 日韩精品大片| 亚洲欧洲三级| 亚洲3区在线| 中文 欧美 日韩| √新版天堂资源在线资源| 中文字幕在线国产| 黄色国产网站在线观看| 美女在线视频一区| 色综合天天性综合| 91日韩中文字幕| 婷婷综合福利| 日韩精品视频在线免费观看| 亚洲大片精品永久免费| 天天摸日日摸狠狠添| 久久中文免费视频| 黄色片免费看| 亚洲.国产.中文慕字在线| 亚洲电影中文字幕在线观看| 91精品啪在线观看国产60岁| 亚洲福利精品在线| 国产h片在线观看| 欧美日韩中文在线| 精品网站999www| 亚洲综合日韩欧美| 欧美不卡一区二区| 中文字幕日韩第一页| 欧美日韩一区二区在线视频| 欧美乱大交xxxxx另类| 精品在线一区二区| 不卡视频一区二区三区| 欧美日韩激情一区| 国产亚洲欧美色| 91精品国产综合久久久蜜臀粉嫩| 日韩三级视频在线播放| 国产成人精品日本亚洲专区61| 91精品国产综合久久久久久漫画 | 欧美人妻一区二区三区| 日韩欧美高清在线视频| 精品成人久久久| 日韩中文字幕第一页| 精品国产31久久久久久| 久久精品黄色片| 视频一区三区| 91精品在线看V| 黄色片网站在线| 欧美日韩国产亚洲一区| 久久久综合精品| 欧美三级在线视频| 中文字幕在线中文字幕二区| 国产免费一级| 91精品国产综合久久久久久| 欧美日韩在线精品成人综合网| 精品久久蜜桃| 精品熟女一区二区三区| 免费视频国产一区| 中文字幕视频一区二区三区久| 日本a口亚洲| 一级日韩一级欧美| 日韩国产欧美| 亚洲乱码视频| 日韩欧美亚洲日产国| 日韩欧美国产片| 日韩在线视频一区| 婷婷久久综合网| 久久夜色精品国产欧美乱极品 | 91精品国产高清| 欧美一级二级三级区| 免费日韩精品中文字幕视频在线| 欧美亚洲视频在线看网址| 91精品免费观看| 欧美日韩在线视频免费观看| 中文字幕在线看视频国产欧美| 精品日韩av一区二区| 中文字幕在线观看欧美| 久久人人精品| 久久精品一二三| 黄色片免费看| 91精品国产综合久久精品| 日韩精品在线免费观看| 男人的天堂网av| 久久久综合精品| 91精品国产91| 国产成人精品综合久久久| 日韩福利视频导航| 欧美人妻一区二区三区| 亚洲欧美中文字幕| 日韩 国产 一区| 国产日韩av高清| 一区二区三区精品在线| 91精品日本| 中文精品在线观看| 久久久99久久精品欧美| 日韩国产成人精品| 免费看日韩精品| 欧美日韩亚洲一区| 国产黄色在线观看| 一区二区三区精品在线| 精品亚洲综合| 国产福利第一页| 欧美日韩高清一区二区| 欧美日韩性视频| 亚洲欧美韩国综合色| 白嫩少妇丰满一区二区| 中文字幕 欧美 日韩| 欧美日韩国产一区中文午夜| 欧美中文字幕精品| 91一区二区| 在线欧美一级视频| 日韩中文字幕二区| 欧美不卡一区二区| 欧美三级日韩三级| www..com日韩| 精品在线网站观看| 久久久水蜜桃| 99视频在线看| 欧美日韩中文字幕日韩欧美| 一区二区视频在线| 精品中文字幕在线| 欧美日韩高清| 亚洲va中文字幕| 最近免费中文字幕在线第一页| 免费在线观看国产黄| 精品久久电影| 91精品国产91| 久久久水蜜桃| 日韩在线中文字幕| 成人欧美亚洲| 色综合久久六月婷婷中文字幕| 最新中文字幕在线播放| 一区二区三区在线|网站| 蜜桃久久久久| 中文字幕国产欧美| 伊人网站在线| 不卡视频一区二区三区| 中文字幕欧美日韩精品| av亚洲免费| 国产区在线看| 亚洲欧美日本另类| 国产日产一区二区三区| 中文字幕在线高清| 一区二区视频在线观看免费的| 欧美性极品xxxx做受| 午夜国产视频| 99精品999| 精品久久蜜桃| 日韩精品视频免费看| 国产一区日韩| 欧美日韩在线不卡一区| 欧美日韩在线播放视频| 欧美日韩国产免费观看| 精品激情国产视频| 91精品蜜臀在线一区尤物| 日韩欧美专区在线| 韩国一区二区av| 欧美日韩国产中文| 成人久久在线| 国产乱一区二区| 国产一卡2卡3卡4卡网站免费| 国产欧美日韩在线| 久久91精品视频| 黄色片网站在线| 91一区二区| 91精品999| 欧美日韩国产一区中文午夜| 91欧美日韩| 日韩欧美综合| 中文在线视频观看| 日韩欧美在线中字| 久久久99免费| 久草视频观看| 在线视频一区二区三区在线播放| 日韩在线中文| 影音先锋中文字幕在线观看| 国产h片在线观看| 日韩欧美资源站| 蜜桃视频一日韩欧美专区| 亚洲综合在线不卡| 精品国产91乱高清在线观看| 91精品国产自产在线| 欧美国产亚洲一区| 亚洲制服一区| 九一久久久久久| 国产久卡久卡久卡久卡视频精品| 在线中文字幕网站| 欧美xxxx中国| 午夜成人鲁丝片午夜精品| 久久久久久99精品| 日韩精品在线播放| 国产丝袜在线播放|