Comment ajouter une vue personnalisée à la mise en page?
J'ai un GraphicsView
classe qui s'étend de la View
classe et je tiens à ajouter cette GraphicsView
classe à la page principale de mon projet. Comment puis-je le faire?
static public class GraphicsView extends View {
public GraphicsView(Context context) {
super(context);
}
@Override
protected void onDraw(Canvas canvas) {
//Drawing commands go here
Path rect = new Path();
rect.addRect(100, 100, 250, 50, Direction.CW);
Paint cPaint = new Paint();
cPaint.setColor(Color.LTGRAY);
canvas.drawPath(rect, cPaint);
}
}
et mon main.xml
:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/linnnnlayout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello" />
<TextView
android:id="@+id/Customfont"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello" />
<View
android:id="@+id/view"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
source d'informationauteur AnasBakez
Vous devez vous connecter pour publier un commentaire.
Vous devez donner le chemin complet de votre classe qui étend la classe de la Vue,
Si je me souviens bien, vous avez besoin de fournir plus de constructeurs d'utiliser la vue à partir de fichier xml (ajouter fichier xml comme "Moi et Nous", a suggéré).
Mise à jour: correction de code.
j'ai enfin eu voici le code
le code XML
et la classe
vous avez besoin pour ce faire:
Parce que votre commande
View
est un intérieur de classe dans votreActivity
le compilateur java affichera le nomActivityName$GraphicsView
pour la classe. Vous ne pouvez pas utiliser directement le nom que l'View
nom dans le fichier xml de mise en page à cause de la$
personnage, mais vous pouvez le faire comme ceci:où
ActivityName
est le nom de l'activité où votreGraphicsView
classe est déclarée.XML:
C'est de travailler pour moi et ajoutez l'affichage de données XML avec chemin d'accès complet et essayer de donner à wrapcontent pour la hauteur et la largeur.