Image desséchable sur un canevas

Comment puis-je obtenir une image sur le canevas afin de tirer parti de cette image?

  • Fonctionnement de l'événement avec la gestion de l'Android alors que le menu est visible
  • Est-ce que iOS a quelque chose de similaire à celui de RecyclerView d'Android?
  • Dénience d'autorisation: startActivity demande à s'exécuter en tant qu'utilisateur -2 mais appelle depuis l'utilisateur 0; Cela requiert android.permission.INTERACT_ACROSS_USERS_FULL
  • Comment faire un appel vidéo par programme sur Android 2.2 ou supérieur?
  • Android: Qu'est-ce que le transport et jsonFactory dans GoogleIdTokenVerifier.Builder?
  • Comprendre l'utilisation de ColorMatrix et ColorMatrixColorFilter pour modifier la teinte d'un Drawable
  • 7 Solutions collect form web for “Image desséchable sur un canevas”

    La bonne façon de dessiner Drawable sur un canevas ne le décompose pas, mais laisse au système le faire:

    Drawable d = getResources().getDrawable(R.drawable.foobar); d.setBounds(left, top, right, bottom); d.draw(canvas); 

    Cela fonctionnera avec toutes sortes de modèles, non seulement des bitmaps. Et cela signifie également que vous pouvez réutiliser le même modèle à nouveau, si seulement la taille change.

    Vous devez charger votre image sous forme de bitmap:

      Resources res = getResources(); Bitmap bitmap = BitmapFactory.decodeResource(res, R.drawable.your_image); 

    Ensuite, rendez le bitmap mutable et créez un lien sur celui-ci:

     Canvas canvas = new Canvas(bitmap.copy(Bitmap.Config.ARGB_8888, true)); 

    Vous pouvez ensuite dessiner sur le canevas.

    Vous pouvez également utiliser cette façon. Cela changera votre gros ajustement sur votre toile:

     Resources res = getResources(); Bitmap bitmap = BitmapFactory.decodeResource(res, yourDrawable); yourCanvas.drawBitmap(bitmap, 0, 0, yourPaint); 

    essaye ça

     Bitmap mBitmap = Bitmap.createScaledBitmap(Bitmap src, int dstWidth, int dstHeight, boolean filter); protected void onDraw(Canvas canvas) { canvas.drawColor(0xFFAAAAAA); canvas.drawBitmap(mBitmap, 0, 0, mBitmapPaint); } 
     Drawable d = ContextCompat.getDrawable(context, R.drawable.***) d.setBounds(left, top, right, bottom); d.draw(canvas); 
     package com.android.jigsawtest; import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.view.SurfaceHolder; import android.view.SurfaceView; public class SurafaceClass extends SurfaceView implements SurfaceHolder.Callback { Bitmap mBitmap; Paint paint =new Paint(); public SurafaceClass(Context context) { super(context); mBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.icon); // TODO Auto-generated constructor stub } @Override public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) { // TODO Auto-generated method stub } @Override public void surfaceCreated(SurfaceHolder holder) { // TODO Auto-generated method stub } @Override public void surfaceDestroyed(SurfaceHolder holder) { // TODO Auto-generated method stub } @Override protected void onDraw(Canvas canvas) { canvas.drawColor(Color.BLACK); canvas.drawBitmap(mBitmap, 0, 0, paint); } } 

    Je ne suis pas sûr que vous devez charger l'image sous forme de bitmap comme votre code ( http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/2.1_r2/android /widget/ProgressBar.java#ProgressBar.onDraw%28android.graphics.Canvas%29 ) utilise Drawable.draw(Canvas c) .

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.