以下は、ブラシの先端のように使用している描画ツール クラスです。描画アプリケーション用。
私の主な活動では、このオブジェクト タイプの 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);
}
}