muszę mieć dynamiczne pozycja menu, krąg zdefiniowane przez użytkownika kolor, podobnie jak to:Niestandardowy widok dla elementu menu
dotykania tego menu otworzy próbnika kolorów.
Teraz mam przykładowy ColorPickerIcon która rozciąga się widok
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;
}
}
i 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"/>
Ale to nie działa w ten sposób, nie może Inicjuję klasę, która nie jest renderowana. Czy istnieje sposób użycia niestandardowej klasy i niestandardowego widoku dynamicznego jako elementu menu?
O mój boże, dziękuję! Zmarnowałem jak godzinę lub dłużej próbując pobrać obiekt View z MenuItem, aby zmodyfikować jego tło i kolor tekstu, ale jest to naprawdę dobra i czysta odpowiedź. Dzięki jeszcze raz! : D – devrique
Nie ma akcji po kliknięciu na selektorze kolorów? Jak obsługiwać kliknięcie w selektorze kolorów? Załóżmy, że mam niestandardowy układ do selektora kolorów. Myślę, że to odpowie na to pytanie. – cegprakash