[/table][size=FONT-SIZE: larger,larger] |
|
|
|
// 得到R.drawable所有的属性, 即获取drawable目录下的所有图片 |
|
Field[] drawableFields = R.drawable.class.getFields(); |
|
[size=FONT-SIZE: larger,larger] resourceValues = new ArrayList | [size=FONT-SIZE: larger,larger] |
for (Field field : drawableFields) |
|
|
|
if (field.getName().indexOf("p_") != -1) |
|
|
resourceValues.add(field.getInt(R.drawable.class)); |
|
|
|
|
|
|
|
|
|
|
|
* 随机从sourceValues的集合中获取size个图片ID, 返回结果为图片ID的集合 |
|
* @param sourceValues 从中获取的集合 |
|
|
|
|
[size=FONT-SIZE: larger,larger] getRandomValues(List | [size=FONT-SIZE: larger,larger] |
|
|
|
Random random = new Random(); |
|
|
[size=FONT-SIZE: larger,larger] result = new ArrayList |
|
for (int i = 0; i < size; i++) |
|
|
|
|
// 随机获取一个数字,大于、小于sourceValues.size()的数值 |
|
int index = random.nextInt(sourceValues.size()); |
|
|
Integer image = sourceValues.get(index); |
|
|
|
|
catch (IndexOutOfBoundsException e) |
|
|
|
|
|
|
|
|
* 从drawable目录中中获取size个图片资源ID, 其中size为游戏数量 |
|
* @param size 需要获取的图片ID的数量 |
|
|
|
|
|
|
|
|
|
|
// 再从所有的图片值中随机获取size的一半数量 |
|
playImageValues = getRandomValues(imageValues, size / 2); |
|
// 将playImageValues集合的元素增加一倍(保证所有图片都有与之配对的图片) |
|
playImageValues.addAll(playImageValues); |
|
|
Collections.shuffle(playImageValues); |
|
|
|
|
* 将图片ID集合转换PieceImage对象集合,PieceImage封装了图片ID与图片本身 |
|
|
|
* @return size个PieceImage对象的集合 |
|
|
getPlayImages(Context context, int size) |
|
|
|
[size=FONT-SIZE: larger,larger][size=FONT-SIZE: larger,larger]resourceValues = getPlayValues(size); |
|
[size=FONT-SIZE: larger,larger]result = new ArrayList | [size=FONT-SIZE: larger,larger] |
|
for (Integer value : resourceValues) |
|
|
|
Bitmap bm = BitmapFactory.decodeResource( |
|
context.getResources(), value); |
|
|
PieceImage pieceImage = new PieceImage(bm, value); |
|
|
|
|
|
|
public static Bitmap getSelectImage(Context context) |
|
|
Bitmap bm = BitmapFactory.decodeResource(context.getResources(), |
|
|
|
|
|
(未完.摘自[疯狂Android讲义.李刚])