2014-07-07 4 views
0

J'ai un ImageView avec une image de fond. ImageView est dimensionné par programme en pourcentage de l'écran. La vue est dans un RelativeLayout et elle est au centre de celle-ci. Ce que je veux, c'est le rendre dessinable. Je veux pouvoir dessiner avec mon doigt (comme si nous étions en train de dessiner des absurdités dans la peinture comme nous étions des enfants). Aussi, quand je bouge mon doigt, je veux que le chemin soit tracé immédiatement. Pouvez-vous me donner un exemple de comment le faire?Android ImageView Comment dessiner le chemin

Répondre

1

Il y a quelques très bonnes références à des applications de dessin, trouvées avec une petite quantité de recherche sur Google:

App simple pour obtenir un bon doigt mouillé/facile à mettre en œuvre: http://v4all123.blogspot.com/2013/11/simple-drawing-example-in-android.html

Plus Compliqué, mais très explication approfondie: http://code.tutsplus.com/tutorials/android-sdk-create-a-drawing-app-touch-interaction--mobile-19202

Ni utilisent un ImageView, mais je suis sûr que vous pouvez accueillir de commutation Types Voir

0

Vous devez remplacer les appels onTouchEvent et onDraw d'ImageView. Obtenir la position tactile de l'utilisateur dans onTouchEvent et dessiner au ImageViewcanvas. Voir l'exemple ici - paint canvas android

1

Il suffit de prendre GestureOverlayView et de définir votre image comme arrière-plan de cette OverlayView.

<android.gesture.GestureOverlayView 
      android:id="@+id/signaturePad" 
      android:layout_width="match_parent" 
      android:layout_height="0dp" 
      android:layout_weight="5" 
      android:background="@color/white" 
      android:eventsInterceptionEnabled="true" 
      android:fadeEnabled="false" 
      android:gestureColor="@color/black" 
      android:gestureStrokeLengthThreshold="0.1" 
      android:gestureStrokeType="multiple" 
      android:orientation="vertical" > 
     </android.gesture.GestureOverlayView> 

et de sauvegarder l'image depuis GestureOverlayView.

try { 
      GestureOverlayView gestureView = (GestureOverlayView) findViewById(R.id.signaturePad); 
      gestureView.setDrawingCacheEnabled(true); 
      Bitmap bm = Bitmap.createBitmap(gestureView.getDrawingCache()); 
      File f = new File(Environment.getExternalStorageDirectory() 
        + File.separator + "signature.png"); 
      f.createNewFile(); 
      FileOutputStream os = new FileOutputStream(f); 
      os = new FileOutputStream(f); 
      //compress to specified format (PNG), quality - which is ignored for PNG, and out stream 
      bm.compress(Bitmap.CompressFormat.PNG, 100, os); 
      os.close(); 
     } catch (Exception e) { 
      Log.v("Gestures", e.getMessage()); 
      e.printStackTrace(); 
     } 

Suivre ce Example