ho bisogno di avere dinamica voce di menu, un cerchio di colore definito dall'utente, in questo modo:vista personalizzato per voce di menu
toccare questa voce di menu si aprirà un selettore di colori.
Ora, ho ColorPickerIcon campione che si estende View
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;
}
}
e 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"/>
Ma non funziona in questo modo, nessuno dei due può Istanzia la classe e non è resa. C'è un modo per utilizzare la classe personalizzata e la visualizzazione dinamica personalizzata come voce di menu?
Oh mio Dio, grazie! Ho sprecato un'ora o più cercando di ottenere l'oggetto View da MenuItem per modificarne lo sfondo e il colore del testo, ma questa è una risposta davvero buona e pulita. Grazie ancora! : D – devrique
Non c'è azione quando si fa clic sul selettore di colori? Come gestire il clic sul selettore di colori? Diciamo che ho un layout personalizzato per il selettore colori. Penso che risponderò a questa domanda. – cegprakash