Je suis nouveau au développement d'Android et j'ai un problème pour trouver comment ajouter une ligne dessinée sur une image. Je peux dessiner la ligne et l'afficher, ou je peux afficher l'image, mais je n'arrive pas à comprendre comment afficher les deux en même temps.Ajouter onDraw drawable sur le dessus de main.xml
Envisager un jauge de compteur de vitesse anolog. En main.xml j'ai un ImageView qui affiche une image du compteur de vitesse moins l'aiguille. Pour l'aiguille, je veux programmer une ligne et l'ajouter au-dessus de l'image de jauge.
Voici mon activité et code de la vue:
public class StartDraw extends Activity {
DrawView drawView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.main);
setContentView(new DrawView(this));
}
final class DrawView extends View {
Paint paint = new Paint();
public DrawView(Context context) {
super(context);
paint.setColor(Color.WHITE);
paint.setStrokeWidth(5);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
canvas.drawLine(30, 100, 150, 200, paint);
}
}
}
et voici mon fichier main.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<ImageView android:src="@drawable/image" android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/imageView1"></ImageView>
</LinearLayout>
Comment puis-je afficher l'aiguille au-dessus de l'indicateur de vitesse? Toute aide est la bienvenue.
Au lieu d'utiliser "canvas.drawLine (30, 100, 150, 200, peinture);" , Je vais utiliser quelque chose comme "canvas.drawLine (startx, starty, stopx, stopy, peinture);" avec startx, starty, stopx, et stopy calculé dans mon activité principale. Si je casse DrawView dans un fichier de classe séparé, comment puis-je utiliser les valeurs calculées dans mon activité principale pour mettre à jour les coordonnées utilisées dans drawLine de DrawView? – Bill
J'ai édité ma question pour montrer comment vous obtenez une référence à l'instance DrawView. À ce stade, vous pouvez lui transmettre des informations. – elevine
Merci! Ça fonctionne maintenant. – Bill