В моем проекте я пытаюсь отобразить несколько файлов изображений, программно манипулируя именем одного из изображений.
т.е. я могу иметь:
filename.jpg, filename_top.jpg, filename_middle.jpg
Я получаю ввод отрисовываемого int и пытаюсь найти имя файла отображаемого изображения, прежде чем манипулировать этим именем файла и пытаться отобразить программно сгенерированные имена файлов. Проблема в том, что манипулированное имя файла не отображается.
то есть. что-то не так с этим:
imageView2.setImageResource (getImageId (this, namebottom));
Есть идеи, как можно изменить getImageId для правильной работы setImageResource?
Код будет выглядеть примерно так:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Bundle bun = getIntent().getExtras();
int imagenumber = bun.getInt("imagenumber");
String extension = bun.getString("extension");
// int become a val from 0 to 20 (array size)
setContentView(R.layout.clickeditem);
final int[] imgIds = new int[{
R.drawable.image0,R.drawable.image1,R.drawable.image2,,,R.drawable.image20};
//The first image with id top in the layout is set ok:
ImageView imageView1 = (ImageView)findViewById(R.id.top);
imageView1.setImageResource(imgIds [ imagenumber ] );
// problem here:
//try to get the name of this file: ie: filename.jpg
// and then manipulate the filename:
String name = imageView1.getResources().getString(R.id.image0);
//try to convert this to the filename_middle.jpg
String namemiddle = name.replace(".jpg", "_middle.jpg");
imageViewt.setImageResource(getImageId(this, namemiddle));
//try to convert this to filename_bottom.jpg
String namebottom = name.replace(".jpg", "_bottom.jpg");
imageView2.setImageResource(getImageId(this, namebottom));
}
//where getImageId is defines as follows:
public static int getImageId(Context context, String imageName)
{
return context.getResources().getIdentifier("drawable/" + imageName,
null, context.getPackageName());
}