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
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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.html
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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; } }
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
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager