将图片切割成若干份
public static List<ImagePiece> splitImage(Bitmap bitmap,int piece){
List<ImagePiece> imagePieces=new ArrayList<ImagePiece>();
int width=bitmap.getWidth();
int height=bitmap.getHeight();
int pieceWidth=Math.min(width, height)/piece;
for(int i=0;i<piece;i++){
for(int j=0;j<piece;j++){
ImagePiece imagePiece=new ImagePiece();
imagePiece.setIndex(j+i*piece);
int x=j*pieceWidth;
int y=i*pieceWidth;
imagePiece.setBitmap(Bitmap.createBitmap(bitmap, x, y, pieceWidth, pieceWidth));
imagePieces.add(imagePiece);
}
}
return imagePieces;
}
将px转换成dp
mMagin = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,
3, getResources().getDisplayMetrics());
完成乱序
// 使用sort完成乱序
Collections.sort(mItemBitmaps, new Comparator<ImagePiece>() {
@Override
public int compare(ImagePiece a, ImagePiece b) {
return Math.random() > 0.5 ? 1 : -1;
}
设置图片选中时的状态
`
if (mFirst == null) {
mFirst = (ImageView) v;
// 设置图片选中时的状态
mFirst.setColorFilter(Color.parseColor("#55FF0000"));
`