0
下面是一個繪圖工具類,我使用像筆尖一樣。對於繪圖應用程序。排序顏色的整數表示 - android
在我的主要活動中,我有這個對象類型的arrayList,我想按顏色對它們進行排序。
正如你可以看到我有一個compareTo方法,只是返回INT1,INT2(其中int爲每個工具的顏色值..但是,這並不在我預料的方式對它們進行排序。
我想通過像彩虹一樣的顏色對它們進行排序。
現在我知道這可能會更容易,如果他們類型的顏色,而不是int,但是數據源將返回int值一樣0xff000000爲黑色。
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);
}
}
你怎麼稱呼'compareTo'方法?你使用'compareTo'方法來排序列表嗎?你能提供什麼樣的輸出? –
在我的主要活動中,我有一個ArrayList allTools; 我只是打電話給Collections.sort(allTools); –
erik
它排序他們,但我想像DarkRed,中紅色,紅色,DarkPurple,中等紫色,紫色,深藍色等..但我越來越像是暗紅色,深紫色,深藍色,中等紅色,Medium Purple ..等。 – erik