日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > 綜合技術 > 顏色選擇器

顏色選擇器

來源:程序員人生   發布時間:2017-02-14 08:41:56 閱讀次數:4062次

talk is cheap ,show your pic

色彩選擇器,首先想用progressbar去渲染,后來覺得太麻煩了,直接自定義view了,關鍵還是對progressbar深入不多。

首先看看我們需要甚么,這么多色彩,還有漸變效果,1臉懵逼,別怕,我們有著色器LinearGradient,不會玩的先去找度娘玩1圈再來,色彩嘛,直接找出圖中視圖中的純色。

private static final int[] COLORS = new int[]{0xFFFFFFFF, 0xFFFF0000, 0xFFFF00FF,
0xFF0000FF, 0xFF00FFFF, 0xFF00FF00, 0xFFFFFF00, 0xFF000000};

再來分析下,這里我們需要畫幾個圓,再畫圓角矩形,,還要對滑動做1下運動區間,左右左右出去就不好了

public boolean onTouchEvent(MotionEvent event) {
    switch (event.getAction()) {//點擊時
        case MotionEvent.ACTION_DOWN:
            currentOffset = (int) event.getX();
            if (currentOffset <= thumbRadius+ScreemHelper.dp2px(context,60)) currentOffset = thumbRadius+ScreemHelper.dp2px(context,60);
            if (currentOffset >= barWidth + thumbRadius+ScreemHelper.dp2px(context,60))
                currentOffset = barWidth + thumbRadius+ScreemHelper.dp2px(context,60);
            STATUS = STATUS_CHANGE;
            break;
        case MotionEvent.ACTION_MOVE:
            currentOffset = (int) event.getX();
            if (currentOffset <= thumbRadius+ScreemHelper.dp2px(context,60)) currentOffset = thumbRadius+ScreemHelper.dp2px(context,60);
            if (currentOffset >= barWidth + thumbRadius+ScreemHelper.dp2px(context,60))
                currentOffset = barWidth +       thumbRadius+ScreemHelper.dp2px(context,60);
            break;

    }
    invalidate();
    return true;
}
這里ScreemHelper是對dp轉換px的工具類。。。。。

轉動條的渲染

barPaint.setShader(
new LinearGradient(startX, startY + barHeight / 2,
startX + barWidth, startY + barHeight / 2,
COLORS, null, Shader.TileMode.CLAMP));

玩好了這些難道就完了?色彩咋取昵

     int unit = barWidth / (COLORS.length - 1);
    int position = currentOffset - thumbRadius-ScreemHelper.dp2px(context,60);
    int i = position / unit;
    int step = position % unit;
    if (i >= COLORS.length - 1) return COLORS[COLORS.length - 1];
    int c0 = COLORS[i];
    int c1 = COLORS[i + 1];

    int a = ave(Color.alpha(c0), Color.alpha(c1), unit, step);
    int r = ave(Color.red(c0), Color.red(c1), unit, step);
    int g = ave(Color.green(c0), Color.green(c1), unit, step);
    int b = ave(Color.blue(c0), Color.blue(c1), unit, step);

    return Color.rgb(r, g, b);
    or(看你需要哪個了)
    return Color.argb(a,r, g, b);
要想實時知道它的行跡我們就需要開個后門,加1個色彩變換監聽器接口。。。。
     public interface onColorChangeListener {
    void onColorChange(int color);
}

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 成人在线视频免费 | 午夜久久精品 | 成人性调教在线播放 | 成人午夜小视频 | 日韩中文一区 | 午夜视频在线观看一区 | 国产午夜小视频 | 亚洲日本一区二区三区 | 久久综合色婷婷 | 国产综合网址 | 可以在线观看av的网站 | 久久精品一区 | 91久久精品一区二区 | 国产精品网站在线 | 欧美激情精品久久久久久变态 | 又爽又大又黄a级毛片在线视频 | 麻豆精品国产传媒mv男同 | 国产精品999视频 | 不卡在线一区 | 国产精品久久久久久吹潮 | 中文字幕色站 | 一区二区三区欧美在线 | 久在线视频 | 日韩三区 | 国产一区二区成人在线 | 在线欧美视频 | 国产视频一区二区在线观看 | 一区二区三区四区视频在线观看 | www激情com| 婷婷久久综合九色综合绿巨人 | 欧美日韩视频一区二区三区 | 色综合天天天天做夜夜夜夜做 | 国产一区中文字幕 | 精品久久视频 | 日产精品久久久久 | 不卡一区二区在线 | 久久一区二区三区欧美 | 美女视频久久久 | 久久久久久成人 | 国产精品国产三级国产a | 欧美一二区|