ユーザーが署名を描画して画像として保存できる機能をアプリに追加したいと考えています。署名アプリをアプリケーションに統合することを考えています。出来ますか?そうでない場合は、解決策を提供してください。ありがとう。
2 に答える
0
Android SDK インストールのサンプル フォルダーを確認してください。目的に合わせて調整できる FingerPaint.java というクラスがあります。署名を保存するときは、view.getDrawingCache() を呼び出してビットマップを取得します。
于 2013-07-29T19:40:32.180 に答える
0
ジェスチャ オーバーレイ ビューを使用した署名パッド コード
GestureOverlayView gestureView;
String path;
File file;
Bitmap bitmap;
public boolean gestureTouch=false;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_gesture_signature);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
Button donebutton=(Button)findViewById(R.id.DoneButton);
donebutton.setText("Done");
Button clearButton=(Button)findViewById(R.id.ClearButton);
clearButton.setText("Clear");
path=Environment.getExternalStorageDirectory().toString();//+"/signature.png";
File directory = new File(path, "testSign");
directory.mkdir();
file = new File(directory,"signature.png");
file.delete();
gestureView=(GestureOverlayView)findViewById(R.id.signaturePad);
gestureView.setDrawingCacheEnabled(true);
gestureView.setAlwaysDrawnWithCacheEnabled(true);
gestureView.setHapticFeedbackEnabled(false);
gestureView.cancelLongPress();
gestureView.cancelClearAnimation();
gestureView.addOnGestureListener(new GestureOverlayView.OnGestureListener() {
@Override
public void onGestureStarted(GestureOverlayView arg0, MotionEvent arg1) {
if (arg1.getAction() == MotionEvent.ACTION_MOVE) {
gestureTouch = false;
} else {
gestureTouch = true;
}
}
@Override
public void onGesture(GestureOverlayView overlay, MotionEvent event) {
}
@Override
public void onGestureEnded(GestureOverlayView overlay, MotionEvent event) {
}
@Override
public void onGestureCancelled(GestureOverlayView overlay, MotionEvent event) {
}
});
donebutton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try {
bitmap = Bitmap.createBitmap(gestureView.getDrawingCache());
file.createNewFile();
FileOutputStream fos = new FileOutputStream(file);
fos = new FileOutputStream(file);
bitmap.compress(Bitmap.CompressFormat.PNG, 100, fos);
fos.close();
} catch (Exception e) {
e.printStackTrace();
}
if (gestureTouch == false) {
setResult(0);
finish();
} else {
setResult(1);
finish();
}
}
});
clearButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
gestureView.invalidate();
gestureView.clear(true);
gestureView.clearAnimation();
gestureView.cancelClearAnimation();
}
});
}
于 2016-06-13T06:29:25.810 に答える