Aller au contenu

Canvas & Activity


AymericB

Recommended Posts

Bonjour,

je fais une appli qui a pour but d'afficher une image, et d'y dessiner un point dessus à un endroit déterminé.

Je me bats avec mon code depuis hier matin...

Je parviens à afficher mon image non déformée et resizée en 480x480 ( largeur du htc desire Z), seulement je fais ça dans le onCreate de l'Activity.

Je ne comprends pas bien l'utilisation des canvas mais il me semble que je dois l'utiliser pour dessiner un point sur mon image.

J'ai mis en commentaire avec des // le code que j'utilise pour simplement afficher mon image resizée

J'ai ajouté une tabulation au code qui me pose problème, car avec celui çi j'ai une régression, mon image resizée ne s'affiche plus et mon point non plus.

Voici mon code, et merci d'avance pour votre aide!

public class DrawBitmap extends Activity {

   public Bitmap mybitmap,newbmp,bitmap;
   public LinearLayout linLayout;
   public ImageView imageView;

   @Override
    public void onCreate(Bundle icicle) {
       super.onCreate(icicle);
       linLayout = new LinearLayout(this);

       Bitmap bitmapOrg = BitmapFactory.decodeResource(getResources(), R.drawable.test1);

       int width = bitmapOrg.getWidth();
       int height = bitmapOrg.getHeight();
       int newWidth = 480;
       int newHeight = 480;

       float scaleWidth = ((float) newWidth) / width;
       float scaleHeight = ((float) newHeight) / height;

       Matrix matrix = new Matrix();
       // resize the bit map
       matrix.postScale(scaleWidth, scaleHeight);

           Paint paint = new Paint();
           paint.setColor(Color.WHITE);

       Bitmap resizedBitmap = Bitmap.createBitmap(bitmapOrg, 0, 0, width, height, matrix, true);

           Canvas canvas = new Canvas();
           canvas.drawColor(Color.WHITE);
           canvas.drawBitmap(bmp, 0, 0, null);
           canvas.drawPoint(200, 200, paint);

       //Bitmap resizedBitmap = Bitmap.createBitmap(bitmapOrg, 0, 0, width, height, matrix, true);
       //BitmapDrawable bmd = new BitmapDrawable(resizedBitmap);            

       imageView = new ImageView(this);

           imageView.draw(canvas);

       //imageView.setImageDrawable(bmd);

       imageView.setScaleType(ScaleType.FIT_START);

       linLayout.addView(imageView,
               new LinearLayout.LayoutParams(
                     LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT
               )
       );
       setContentView(linLayout);
   }
}


   class BitmapView extends View {
       public BitmapView(Context context) {
           super(context);
       }

       @Override
       public void onDraw(Canvas canvas) {
           super.onDraw(canvas);
}
}

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...