Ich möchte Menü wie folgt gestalten.Radial menu android mit taste klicken?
Ich habe versucht, Animation, aber es behält nicht die Position der Tasten.
Wenn jemand diese Art von Menü getan haben, bitte führe mich.
Jede Hilfe wird geschätzt.
Ich möchte Menü wie folgt gestalten.Radial menu android mit taste klicken?
Ich habe versucht, Animation, aber es behält nicht die Position der Tasten.
Wenn jemand diese Art von Menü getan haben, bitte führe mich.
Jede Hilfe wird geschätzt.
Ich denke Rotatory wheel in android, die Ihnen perfekte Idee geben, über diese Art von Widgets zu erstellen. Es ist auch hilfreich für mich. Prüfen Sie auch für This Example.
http://code.google.com/p/radial-menu-widget/
Es ist, was alles, was Sie brauchen das Glas .download und integrieren wie beispielsweise auf den obigen Link
ich vor kurzem dieses Kreis Menü erstellt in meinem letzten Projekt zu addieren. Es sieht aus wie
Was brauchen Sie eine neue Ansicht zu erstellen und diese Ansicht ziehen, überprüfen Sie die Benutzereingaben (wo er berührt), die Gestaltung eines Feedback-Mechanismus, zum Beispiel, aus meiner Sicht, wenn der Benutzer berührt jeder der 5 Bögen ändert sich die Hintergrundfarbe zu skyblue. Hier ist mein Code für onDrawMethod.
protected void onDraw(Canvas canvas) {
// TODO Auto-generated method stub
px = getMeasuredWidth()/2;
py = getMeasuredHeight();
initial = 144;
finalangle = 252;
centerCircleradius = 30;
middleCircleRadius = 140;
int init, fina;
init = 160;
fina = 360;
finalOVal.set(px-middleCircleRadius-4, py-middleCircleRadius-4, px+middleCircleRadius+4, py+middleCircleRadius+4);
middleOval.set(px-middleCircleRadius, py-middleCircleRadius, px+middleCircleRadius, py+middleCircleRadius);
while(init<fina)
{
circlePaint.setColor(colors[i]);
canvas.drawArc(finalOVal,init,10,false, circlePaint);
i++;
if(i>=colors.length)
{
i=0;
}
init = init + 10;
}
canvas.drawArc(middleOval, 180, 180, false, pencil);
midInitial = 180;
i=0;
//Creating the first Arc
if(arcTouched[0])
{
canvas.drawArc(middleOval, midInitial, 36, true, arcTouchedBack);
canvas.drawArc(middleOval, midInitial, 36, true, pencil);
}
else
{
canvas.drawArc(middleOval, midInitial, 36, true, middleCircleBody);
canvas.drawArc(middleOval, midInitial, 36, true, pencil);
}
canvas.drawBitmap(bitmap.get(0), null, (putBitmapTo(midInitial, 36, 140, px, py)), null);
midInitial+=36;
if(arcTouched[1])
{
canvas.drawArc(middleOval, midInitial, 36, true, arcTouchedBack);
canvas.drawArc(middleOval, midInitial, 36, true, pencil);
}
else
{
canvas.drawArc(middleOval, midInitial, 36, true, middleCircleBody);
canvas.drawArc(middleOval, midInitial, 36, true, pencil);
}
canvas.drawBitmap(bitmap.get(1), null, (putBitmapTo(midInitial, 36, 140, px, py)), null);
midInitial+=36;
if(arcTouched[2])
{
canvas.drawArc(middleOval, midInitial, 36, true, arcTouchedBack);
canvas.drawArc(middleOval, midInitial, 36, true, pencil);
}
else
{
canvas.drawArc(middleOval, midInitial, 36, true, middleCircleBody);
canvas.drawArc(middleOval, midInitial, 36, true, pencil);
}
canvas.drawBitmap(bitmap.get(2), null, (putBitmapTo(midInitial, 36, 140, px, py)), null);
midInitial+=36;
//Creatring the second Arc
if(arcTouched[3])
{
canvas.drawArc(middleOval, midInitial, 36, true, arcTouchedBack);
canvas.drawArc(middleOval, midInitial, 36, true, pencil);
}
else
{
canvas.drawArc(middleOval, midInitial, 36, true, middleCircleBody);
canvas.drawArc(middleOval, midInitial, 36, true, pencil);
}
canvas.drawBitmap(bitmap.get(3), null, (putBitmapTo(midInitial, 36, 140, px, py)), null);
midInitial+=36;
if(arcTouched[4])
{
canvas.drawArc(middleOval, midInitial, 36, true, arcTouchedBack);
canvas.drawArc(middleOval, midInitial, 36, true, pencil);
}
else
{
canvas.drawArc(middleOval, midInitial, 36, true, middleCircleBody);
canvas.drawArc(middleOval, midInitial, 36, true, pencil);
}
canvas.drawBitmap(bitmap.get(4), null, (putBitmapTo(midInitial, 36, 140, px, py)), null);
canvas.drawCircle(px, py-10, 40, pencil);
canvas.drawCircle(px, py-10, 39, smallCircleCore);
canvas.drawCircle(px, py-10, 35, bigArc);
canvas.drawCircle(px, py-10, 20, smallCircleCore);
canvas.drawCircle(px, py-10, 15, bigArc);
canvas.drawLine(px-8, py-10, px+8, py-10, lineCore);
canvas.save();
}
Einige Referenz, die Sie benötigen.
Bitmap -> ist ein Arraylist, das Bilder enthält
arcToched [] -> ist eine Anordnung, die den Hintergrund für das Lichtbogen definiert, wobei die Werte dieser Booleschen Array in onTouchEvent modifiziert wird() Methode.
lineCore, smallCircleCore ..... sind Farben.
Ich weiß, das ist nicht der beste Weg und auch nicht professionell. Ich habe dieses Menü nach Bedarf erstellt. Es ist in gewisser Weise nicht skalierbar, bis Sie die Winkelberechnungen ändern.
Diese Ansicht ist stark von Catch Notes Application inspiriert. Das einzige Problem, mit dem ich bei der Erstellung dieser Ansicht konfrontiert wurde, war die Bestimmung des berührten Bogens. Die einzige Animation, die ich hier verwendet habe, ist genau wie bei Catch Notes (die, in der sich das kreisförmige Menü ein wenig mehr erweitert als die angegebene Größe, dann wieder normal wird).
Bitte schreiben ganze Klasse :) – Jitendra
Ich brauche die gleiche Funktionalität. aber ich brauche, dass dieses Menü auch scrollen sollte. wie Dialer ... bitte helfen Sie mir ... bitte bitte – AnAndroid
Menü sieht awesome.can Sie PLZ setzen ganzen Code, so dass es für alle hilfreich sein kann. –
Siehe diesen Link http://stackoverflow.com/questions/10222730/how-to-create-a-rotating-wheel-control – Bhavika
[Dies] (http://stackoverflow.com/questions/6857505/creating-a-circle-view-in-android) könnte helfen. Überprüfen Sie auch [dieses Beispiel] (http://www.codeproject.com/Articles/146145/Android-3D-Carousel). –
Haben Sie die Lösung gefunden? –