Il y a deux choses qui vous manquent. Tout d'abord, je pense que vous ne comprenez pas le constructeur Canvas (Bitmap b). Le bitmap transmis est celui que le canevas dessine dans. Cela pourrait être juste un nouveau bitmap que vous avez construit. Deuxièmement, il est recommandé d'utiliser le canevas qui vous est transmis dans la méthode onDraw de votre View. Vraisemblablement que View est un de votre activité, soit récupéré à partir de votre mise en page XML via findViewById ou construit et passé à setContentView dans la méthode onCreate() de l'activité. Donc, vous devrez sous-classer Afficher et remplacer la méthode onDraw pour que votre dessin soit terminé. Quelque chose comme:
public class MyView extends View {
@Override
public void onDraw (Canvas c) {
Bitmap mB = BitmapFactory.decodeResource(this.getContext().getResources(), R.drawable.picture);
c.drawBitmap(mB, 0, 0, null);
}
}
Ensuite, dans votre activité, vous devez créer une instance de votre nouvelle vue et le transmettre à l'activité via setContentView:
public class MyActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mv = new MyView(this);
setContentView(mv);
}
Vous pouvez appeler la place setContentView (View v, ViewGroup.LayoutParameters lp) surcharge si vous voulez configurer LayoutParameters.
Je n'ai pas testé tout cela, mais il devrait au moins vous mettre sur la bonne voie.
soryy, je suis nouveau dans android.Je ne veux pas utiliser ImageView parce que, après le traitement de l'image, je ne peux pas dessiner avec ImageView. Je veux le dessiner manuellement. Pouvez-vous expliquer plus? – lakk
mais je dois utiliser bitmap? – lakk