muss ich dynamische Menüpunkt haben, einen Kreis von benutzerdefinierten Farbe, wie folgt aus:Benutzerdefinierte Ansicht für Menüpunkt
diesen Menüpunkt berührt wird eine Farbauswahl öffnen.
Jetzt habe ich Probe ColorPickerIcon die Ansicht
public class ColorPickerIcon extends View {
private Paint mPaint;
private int mColor;
private final int mRadius = 20;
public ColorPickerIcon(Context context) {
super(context);
mColor = Color.BLACK;
mPaint = createPaint();
}
public ColorPickerIcon(Context context, AttributeSet attrs) {
super(context, attrs);
mColor = Color.BLACK;
mPaint = createPaint();
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
canvas.drawCircle(0, 0, mRadius, mPaint);
}
public void setPaintColor(int color) {
mColor = color;
}
private Paint createPaint() {
Paint temp = new Paint();
temp.setAntiAlias(true);
temp.setStyle(Paint.Style.STROKE);
temp.setStrokeJoin(Paint.Join.ROUND);
temp.setStrokeWidth(6f);
temp.setColor(mColor);
return temp;
}
}
und menu.xml
<item
android:id="@+id/menu_pick_color"
android:title="@string/pick_color"
yourapp:showAsAction="always"
yourapp:actionViewClass="com.example.widgets.ColorPickerIcon"/>
<item
android:id="@+id/menu_clear"
android:icon="@null"
android:title="@string/clear"
yourapp:showAsAction="always"/>
<item
android:id="@+id/menu_save"
android:icon="@null"
android:title="@string/save"
yourapp:showAsAction="always"/>
Aber es funktioniert nicht auf diese Weise erstreckt, weder kann Ich instanziiere die Klasse, noch wird sie gerendert. Gibt es eine Möglichkeit, benutzerdefinierte Klasse und benutzerdefinierte dynamische Ansicht als Menüelement zu verwenden?
Oh mein Gott, danke! Ich verschwendete wie eine Stunde oder mehr und versuchte, das View-Objekt aus dem MenuItem zu holen, um dessen Hintergrund und Textfarbe zu ändern, aber das ist eine wirklich gute und saubere Antwort. Danke noch einmal! : D – devrique
Es gibt keine Aktion, wenn auf den Farbwähler geklickt wird? Wie gehe ich mit dem Klick auf den Farbwähler um? Nehmen wir an, ich habe ein benutzerdefiniertes Layout für die Farbauswahl. Ich denke, dass wird diese Frage beantworten. – cegprakash