2010-07-07 14 views
5

Trong ứng dụng của tôi .... có một số hình ảnh như temp1.jpg, temp2.jpg ..... upto temp35.jpg,Tải hình ảnh trong ImageView trong Android

vì vậy khi nhấp vào nút, tôi muốn tải từng ảnh một trong ImageView .... tôi muốn làm như:

cnt = 1;
imagename = "temp" + cnt + ".jpg";
cnt ++;

vì vậy sự nhầm lẫn của tôi là "có cách nào để tải hình ảnh trong imageview từ chuỗi (biến số tưởng tượng) như temp1.jpg, v.v ..."

Trả lời

3

tôi thực hiện dưới đây giải pháp và nó làm việc cho tôi:

while(cnt!=n) 
{ 
String icon="temp" + cnt; 
int resID = 
getResources().getIdentifier(icon,"drawable","testing.Image_Demo"); 
imageView.setImageResource(resID); 
cnt++; 
} 
1

Tôi không biết đây có phải là giải pháp tốt nhất hay không nhưng bạn có thể tạo một Hashtable ánh xạ tên hình ảnh tới tài nguyên.

Hashtable map; 
map.put("temp1", R.drawable.temp1) // assuming temp1.jpg is in /drawable 

và sau đó bạn có thể tải ImageView từ bản vẽ.

String imageName = "temp" + n; 
Drawable d = getResources().getDrawable((int)map[imageName]); 
ImageView i = new ImageView(this); 
i.setImageResource(d); 
+0

Điều đó có nghĩa bạn cần phải chỉnh sửa bảng băm mỗi khi bạn thêm một hình ảnh mới ... – xil3

+0

Đó là lý do tại sao tôi viết nó không phải là giải pháp tốt nhất. Mặc dù, bạn có thể sử dụng Reflections để đọc các trường công cộng và tự động nạp hashmap. Nghĩ lại, bạn có thể sử dụng Reflections để lấy id và quên đi bản đồ. – Itsik

4

Bạn có thể thử này:

int cnt = 1; 
//Bitmap bitmap = BitmapFactory.decodeFile("temp" + cnt + ".jpg"); 
int imageResource = getResources().getIdentifier("drawable/temp" + cnt + ".jpg", null, getPackageName()); 
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), imageResource); 
imageView.setImageBitmap(bitmap); 
cnt++; 

Hope đó là những gì bạn đang tìm kiếm.

+0

Rất tiếc..không hoạt động ... số lần xem hình ảnh bị bỏ qua chỉ với màn hình trống..không có hình ảnh –

+0

Bạn có chắc chắn bạn đang cung cấp đúng đường dẫn đến hình ảnh không? Những hình ảnh trên sdcard? – xil3

+0

Bạn cũng có thể đăng ImageView của mình (xml hoặc nếu bạn khai báo nó theo chương trình) không? – xil3

2

Tại sao không phải cái gì như

File f = new File(PathToFiles + "/temp" + cnt + ".jpg"); 
if (f.exists()) { 
    Drawable d = Drawable.createFromPath(f); 
    imageview.setImageDrawable(d); 
} 
+0

thanx cho câu trả lời .... –