這篇文章主要介紹了Android如何實現(xiàn)銀聯(lián)刷卡機(jī)消費(fèi)后手動簽名的功能,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)建站!專注于網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、微信小程序開發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了灤南免費(fèi)建站歡迎大家使用!
幾天前去物管交物業(yè)費(fèi),物管工作人員說小區(qū)引進(jìn)高新產(chǎn)品,使用銀行卡消費(fèi)后,不需要拿筆在銀聯(lián)機(jī)上簽名,直接用手指觸摸實現(xiàn)消費(fèi)簽名,當(dāng)時心想,果然是高科技,機(jī)子外形如下左圖,簽名如下右圖。
仔細(xì)一看,其實就是一個觸摸屏,用戶在上面直接手動簽名,實現(xiàn)這個功能其實并不復(fù)雜,我們自定義一個控件,繼承view,使用 Canvas的drawLine,drawPoint這兩個方法來實現(xiàn)這個功能。
首先自定義控件 MDrawLineView
package com.view; import android.content.Context; import android.graphics.Bitmap; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.graphics.PorterDuff; import android.util.AttributeSet; import android.view.MotionEvent; import android.view.View; import android.widget.LinearLayout; /** * Created by jiang on 2017/12/25. */ public class MDrawLineView extends View { public MDrawLineView(Context context){ super(context); } public MDrawLineView(Context context,AttributeSet attrs){ super(context, attrs); paint=new Paint(Paint.DITHER_FLAG);//創(chuàng)建一個畫筆 if(bitmap==null){ bitmap = Bitmap.createBitmap(900, 1200, Bitmap.Config.ARGB_8888); //設(shè)置位圖的寬高 } canvas=new Canvas(); canvas.setBitmap(bitmap); paint.setStyle(Paint.Style.STROKE);//設(shè)置非填充 paint.setStrokeWidth(5);//筆寬5像素 paint.setColor(Color.RED);//設(shè)置為紅筆 paint.setAntiAlias(true);//鋸齒不顯示 } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); if(bitmap==null){ bitmap = Bitmap.createBitmap(900, 1200, Bitmap.Config.ARGB_8888); //設(shè)置位圖的寬高 } canvas.drawBitmap(bitmap,0,0,null); } public void clear(){ canvas.drawColor(Color.TRANSPARENT, PorterDuff.Mode.CLEAR); } @Override public boolean onTouchEvent(MotionEvent event) { switch (event.getAction()){ case MotionEvent.ACTION_MOVE: //用戶手指在屏幕上移動畫線 canvas.drawLine(mov_x,mov_y,event.getX(),event.getY(),paint); invalidate(); break; case MotionEvent.ACTION_DOWN://用戶手指按下時畫起點(diǎn) mov_x=(int) event.getX(); mov_y=(int) event.getY(); canvas.drawPoint(mov_x,mov_y,paint); invalidate(); break; case MotionEvent.ACTION_UP: break; } mov_x=(int) event.getX(); mov_y=(int) event.getY(); return true; //return super.onTouchEvent(event); } private int mov_x;//聲明起點(diǎn)x坐標(biāo) private int mov_y;//聲明起點(diǎn)y坐標(biāo) private Paint paint;//聲明畫筆 private Canvas canvas;//畫布 private Bitmap bitmap;//位圖 private int blcolor; }
布局xml代碼
背景 bg_drawline .xml
activity代碼
package com.cktest; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.Button; import com.view.MDrawLineView; /** * Created by jiang on 2017/12/25. */ public class DrawLineAct extends AppCompatActivity implements View.OnClickListener{ @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.act_drawline); mDrawLine = (MDrawLineView) findViewById(R.id.mDrawLine); clearBut = (Button) findViewById(R.id.clearBut); clearBut.setOnClickListener(this); } @Override public void onClick(View v) { switch (v.getId()){ case R.id.clearBut: mDrawLine.clear(); break; } } private MDrawLineView mDrawLine; private Button clearBut; }
Android是一種基于Linux內(nèi)核的自由及開放源代碼的操作系統(tǒng),主要使用于移動設(shè)備,如智能手機(jī)和平板電腦,由美國Google公司和開放手機(jī)聯(lián)盟領(lǐng)導(dǎo)及開發(fā)。
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“Android如何實現(xiàn)銀聯(lián)刷卡機(jī)消費(fèi)后手動簽名的功能”這篇文章對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!