Bonjour, je voudrai savoir quel composant faut t'il utilisé pour faire une sorte de EditText mais avec écriture avec un stylet pour une signature manuscrite
merci les amis
Version imprimable
Bonjour, je voudrai savoir quel composant faut t'il utilisé pour faire une sorte de EditText mais avec écriture avec un stylet pour une signature manuscrite
merci les amis
Personnellement pour réaliser ça lors d'un projet, j'avais utiliser un LinearLayout dans mon layout dans lequel j'appliquais un composant "view" depuis ma classe. Je te met le code :
Et après pour la récupération, une fois la signature dessinée :Code:
1
2
3
4
5
6
7
8
9
10
11
12 private MyView myView; LinearLayout conteneurSignature; protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.xx); conteneurSignature = (LinearLayout)findViewById(R.id.conteneurSignature); myView = new MyView(this); conteneurSignature.addView(myView); }
Voila j'espère t'avoir aidé.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 Bitmap bmMyView = myView.getCanvasBitmap(); //Save in file File folder = new File(Environment.getExternalStorageDirectory () + "/NomDuDossierPourStocker"); if(!folder.exists()) { folder.mkdir(); } String extStorageDirectory = Environment.getExternalStorageDirectory().toString()+ "/NomDuDossierPourStocker"; OutputStream outStream = null; File file = new File(extStorageDirectory, id+".jpg"); try { outStream = new FileOutputStream(file); bmMyView.compress(Bitmap.CompressFormat.JPEG, 100, outStream); outStream.flush(); outStream.close(); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }
Salut, peut tu expliquer un peut ton code?
j'ai créé mon layout et ma view mes comment dessiner dans le composant vew
merci
Oups il y'en manque un bout, la prévisualisation a du buguer un peu, tu peux difficilement créer le composant MyView si je te le donne pas :)
MyView.java
J'ai retrouvé le tuto dont je m'étais servi : http://android-coding.blogspot.fr/20...stom-view.htmlCode:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95 import android.content.Context; import android.graphics.Bitmap; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Matrix; import android.graphics.Paint; import android.graphics.Path; import android.util.AttributeSet; import android.view.MotionEvent; import android.view.View; public class MyView extends View { boolean freeTouched = false; Path freePath; Bitmap myCanvasBitmap = null; Canvas myCanvas = null; Matrix identityMatrix; public MyView(Context context) { super(context); } public MyView(Context context, AttributeSet attrs) { super(context, attrs); } public MyView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } @Override protected void onDraw(Canvas canvas) { canvas.drawColor(Color.WHITE); if(freeTouched){ Paint paint = new Paint(); paint.setStyle(Paint.Style.STROKE); paint.setColor(Color.MAGENTA); paint.setStrokeWidth(5); // canvas.drawColor(Color.BLACK); myCanvas.drawPath(freePath, paint); canvas.drawBitmap(myCanvasBitmap, identityMatrix, null); } } @Override public boolean onTouchEvent(MotionEvent event) { switch(event.getAction()){ // case MotionEvent.ACTION_UP: // freeTouched = false; // break; case MotionEvent.ACTION_DOWN: freeTouched = true; freePath = new Path(); freePath.moveTo(event.getX(), event.getY()); break; case MotionEvent.ACTION_MOVE: freePath.lineTo(event.getX(), event.getY()); invalidate(); break; } return true; } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { int w = MeasureSpec.getSize(widthMeasureSpec); int h = MeasureSpec.getSize(heightMeasureSpec); myCanvasBitmap = Bitmap.createBitmap(w, h, Bitmap.Config.ARGB_8888); myCanvas = new Canvas(); myCanvas.setBitmap(myCanvasBitmap); identityMatrix = new Matrix(); setMeasuredDimension(w, h); } public void cleanBoard() { freePath.reset(); myCanvasBitmap.eraseColor(Color.WHITE); // mPaths.clear(); invalidate(); } public Bitmap getCanvasBitmap(){ // myCanvasBitmap.eraseColor(Color.WHITE); return myCanvasBitmap; } }
Merci l ami je te tien au courant
Salut, bon j'ai réussi finalement à créer quelque chose, pas toute a fait au point car il faut tout de même une view assez grande pour pouvoir signer
Ta une idée l'ami
Merci
Oui, tout dépend de la qualité du stylet et des conditions pour signer. Une idée pour ?
Salut, donc tout fonctionne à merveille, merci beaucoup cher amis
Salut, peut tu me donner ton avis sur la discussion que j'ai posté a ce post:
http://www.developpez.net/forums/d14...l/#post7747291
comment mettre l'image d'une signature dans un mail
Merci