0

以下は、ブラシの先端のように使用している描画ツール クラスです。描画アプリケーション用。

私の主な活動では、このオブジェクト タイプの arrayList があり、それらを色で並べ替えたいと考えています。

ご覧のとおり、int1-int2を返すだけのcompareToメソッドがあります(intは各ツールの色の値です..しかし、これは私が期待した方法でそれらをソートしません.

虹のように色ごとに並べ替えようとしています。

これで、Int ではなく Color のタイプの方がおそらく簡単になることがわかりましたが、データ ソースは黒の 0xff000000 のような Int 値を返します。

public class KNDrawingTool implements Comparable<KNDrawingTool>{

    public int id;
    public String name;
    public int size;
    public int color;
    public int cost;
    public int capacity;
    public int amountLeft;
    public String type;
    public Paint mPaint;


    public KNDrawingTool(String toolType, Boolean flatTip, int paintId, String paintName, int paintSize,int paintColor, int paintCost, int canCapacity, int remainingAmount){
        type = toolType;
        id = paintId;
        name = paintName;
        size = paintSize;
        color =paintColor;
        cost = paintCost;
        capacity = canCapacity;
        amountLeft = remainingAmount;

        mPaint = new Paint();

        if(type == "paint"){
           mPaint.setMaskFilter(new BlurMaskFilter(15, BlurMaskFilter.Blur.NORMAL));
        }
        /*if(flatTip){
            mPaint.setStrokeCap(Paint.Cap.SQUARE);  
        }else{
            mPaint.setStrokeCap(Paint.Cap.ROUND);
        }*/
        mPaint.setStrokeCap(Paint.Cap.ROUND);
        mPaint.setColor(color);
        mPaint.setStyle(Paint.Style.STROKE);
        mPaint.setStrokeWidth(size);



    }


    /* (non-Javadoc)
     * @see java.lang.Comparable#compareTo(java.lang.Object)
     */
    @Override
    public int compareTo(KNDrawingTool other) {
        Log.v("TOOL", "SOrting");
        return (color-other.color);
    }
}
4

1 に答える 1