Hi,
ich zeichne mehrere Texte in ein Canvas. Das Canvas reagiert auf einen OnTouchListener.
Wie bekomme ich in der Action Methode den Text raus, den ich berührt habe?
Wenn ich ein Layout setzen würde, kann ich es über die ID identifizieren.
Die ID wäre dann dieselbe ID, wie ich in meinem ArrayList Container definiert habe. Den Text kann ich dann über die ID identifizieren.
Eine solche eine Möglichkeit habe ich beim Canvas Text zeichnen nicht gefunden. Ich habe was von einem TextRender gelesen, aber sowie ich das verstanden habe ist das für ein GLSurfface und als Neuling werde ich von der Vielzahl an Parametern erschlagen und hoffe eine andere Lösung zufinden.
Viele Grüße,
Saskia
ich zeichne mehrere Texte in ein Canvas. Das Canvas reagiert auf einen OnTouchListener.
Wie bekomme ich in der Action Methode den Text raus, den ich berührt habe?
Wenn ich ein Layout setzen würde, kann ich es über die ID identifizieren.
Die ID wäre dann dieselbe ID, wie ich in meinem ArrayList Container definiert habe. Den Text kann ich dann über die ID identifizieren.
Eine solche eine Möglichkeit habe ich beim Canvas Text zeichnen nicht gefunden. Ich habe was von einem TextRender gelesen, aber sowie ich das verstanden habe ist das für ein GLSurfface und als Neuling werde ich von der Vielzahl an Parametern erschlagen und hoffe eine andere Lösung zufinden.
Java:
//Code in Action Class
public void definePositions{
//[Position definition for X + Y]
LineView lineView = new LineView(this,linePosX, linePosY);
lineView.setOnTouchListener(this);
branch_layout.addView(lineView);
}
//Inner Class from Action Class
private class LineView extends View {
private float [] linePosX;
private float [] linePosY;
public LineView(Context context) {
super(context);
}
public LineView(Context context, float linePosX[], float linePosY[]) {
super(context);
this.linePosX = linePosX;
this.linePosY = linePosY;
}
}
@Override
protected void onDraw(Canvas canvas) {
// TODO Auto-generated method stub
super.onDraw(canvas);
Paint paint = new Paint();
paint.setColor(Color.BLUE);
paint.setAntiAlias(true);
paint.setStrokeWidth(2);
paint.setStyle(Paint.Style.FILL);
//8 Texte and unterschiedliche Positionen
for (int i = 0; i < linePosX.length; i++) {
canvas.drawText("test", linePosX[i], linePosY[i], paint);
canvas.drawLine(linePosX[i], linePosY[i], linePosX[i]+50, (float)linePosY[i], paint);
}
}
@Override
public boolean onTouch(View v, MotionEvent event) {
//Wie kann ich den Text raus, den ich angeklickt habe?
}
Viele Grüße,
Saskia