У меня есть код, который позволяет мне использовать изображения в папке для рисования, но все изображения хранятся в массиве по имени-
Я хочу загрузить их программно с помощью функции и сохранить их в массиве
это массив:
private int[] theBitmapIds = { R.drawable.elefant_001, R.drawable.elefant_002, R.drawable.elefant_003, R.drawable.elefant_004,
R.drawable.elefant_005, R.drawable.elefant_006, R.drawable.elefant_007,
R.drawable.elefant_008, R.drawable.elefant_009, R.drawable.elefant_010,
R.drawable.elefant_011, R.drawable.elefant_012, R.drawable.elefant_013,
R.drawable.elefant_014, R.drawable.elefant_015, R.drawable.elefant_016,
R.drawable.elefant_017, R.drawable.elefant_018, R.drawable.elefant_019,
R.drawable.elefant_020, R.drawable.elefant_021,R.drawable.elefant_022,
R.drawable.elefant_022, R.drawable.elefant_023,R.drawable.elefant_024,
R.drawable.elefant_025, R.drawable.elefant_026, R.drawable.elefant_027,
R.drawable.elefant_028, R.drawable.elefant_029, R.drawable.elefant_030,
R.drawable.elefant_031, R.drawable.elefant_032, R.drawable.elefant_033,
R.drawable.elefant_034, R.drawable.elefant_035, R.drawable.elefant_036,
R.drawable.elefant_037, R.drawable.elefant_038, R.drawable.elefant_039,
R.drawable.elefant_040};
Я изменил его функцией
public int [] theBitmapIds( ) {
Field[] ID_Fields = R.drawable.class.getFields();
int[] theBitmapIds = new int[ID_Fields.length];
for (int i = 0; i < ID_Fields.length; i++) {
try {
theBitmapIds[i] = ID_Fields[i].getInt( null );
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
return theBitmapIds;
}
private int[] theBitmapIds=theBitmapIds( );
, но когда я вызываю массив в другой функции, в нем все равно ничего нет
public Bitmap getBitmap(int width, int height, int index) {
Bitmap b = Bitmap.createBitmap(width, height,
Bitmap.Config.ARGB_8888);
b.eraseColor(0xFFFFFFFF);
Canvas c = new Canvas(b);
Drawable d = getResources().getDrawable(theBitmapIds[index]);
int margin = 1;
int border = 1;
Rect r = new Rect(margin, margin, width - margin, height - margin);
int imageWidth = r.width() - (border * 2);
int imageHeight = imageWidth * d.getIntrinsicHeight()
/ d.getIntrinsicWidth();
if (imageHeight > r.height() - (border * 2)) {
imageHeight = r.height() - (border * 2);
imageWidth = imageHeight * d.getIntrinsicWidth()
/ d.getIntrinsicHeight();
}
Я в замешательстве, особенно я нуб в Java.Как я могу заставить этот код работать, редактируя функцию или изменяя эту строку кода:
private int[] theBitmapIds=theBitmapIds( );
или
Drawable d = getResources().getDrawable(theBitmapIds[index]);
Кто-нибудь, помогите мне, пожалуйста!