自定義視圖,我需要有動態的菜單項,用戶自定義顏色的圓圈,像這樣:的菜單項
觸摸該菜單項打開一個顏色選擇器。現在
,我有延伸查看樣品ColorPickerIcon
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;
}
}
和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"/>
但它不以這種方式工作,既可以我實例化這個類,也沒有渲染它。有沒有辦法使用自定義類和自定義動態視圖作爲菜單項?
哦,我的天啊,謝謝你!我浪費了一個小時或更長時間試圖從MenuItem中獲取View對象來修改它的背景和文本顏色,但這是一個非常好的和乾淨的答案。再次感謝! :D – devrique 2017-01-28 03:42:06
單擊顏色選擇器時沒有任何操作?如何處理顏色選擇器上的點擊?假設我有一個顏色選擇器的自定義佈局。我想這會回答這個問題。 – cegprakash 2017-02-02 11:18:11