30/09/2018, 22:08

Cách đọc file ảnh trong Android Studio

Anh chị cho em hỏi với ạ!
Hiện tại em có 1 list ảnh ở trong file. Nếu như làm bình thường thì mỗi lần đọc ảnh phải là R.drawable.(Tên ảnh).
Nhưng do số lượng quá nhiều nếu đọc như vậy sẽ không hay lắm. Anh chị nào có cách gì chỉ em với ạ! Em cảm ơn!

Nguyen Ca viết 00:16 ngày 01/10/2018

Sử dụng reflection chắc được:

R.drawable.class.getFields
//example:
Field[] drawables = android.R.drawable.class.getFields();
for (Field f : drawables) {
    try {
        Log.i("LOG", "R.drawable." + f.getName());
    } catch (Exception e) {
        e.printStackTrace();
    }
}

ref: http://stackoverflow.com/questions/13266774/how-to-get-list-of-image-with-r-drawable

Quân viết 00:14 ngày 01/10/2018

A có thể nói rõ hơn cho em được không ạ? E vẫn không hiểu mấy ạ

Nguyen Ca viết 00:21 ngày 01/10/2018

ý là như vầy:

final R.drawable drawableResources = new R.drawable(); 
final Class<R.drawable> c = R.drawable.class;
final Field[] fields = c.getDeclaredFields();
for (int i=0; i < fields.length;i++) 
{
     resourceId[i] = fields[i].getInt(drawableResources);  
    /* till here you get all the images into the int array resourceId.*/
}
imageview= (ImageView)findViewById(R.id.imageView);
if(your condition)
{
   imageview.setImageResource(resourceId[any]);
}

ref: http://stackoverflow.com/questions/11737607/how-to-set-the-image-from-drawable-dynamically-in-android

Quân viết 00:15 ngày 01/10/2018

Em làm được rồi ạ. Cảm ơn anh

Nguyen Ca viết 00:22 ngày 01/10/2018

Làm được rồi thì show solution lên đi em, người khác bị như em còn biết chứ

Quân viết 00:10 ngày 01/10/2018

Nó giống cái trên của anh ạ. Hiện tại code của em nó chỉ tìm ảnh mà chỉ có độ dài 1 ak

public void findIdAlphabets(){
        Field[] drawables =R.drawable.class.getDeclaredFields();
        for (int i=0;i<drawables.length;i++) {
            try {
                Log.d("error",drawables[i].getName());
                if(drawables[i].getName().length()==1){
                    list.add(drawables[i].getName());
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
Bài liên quan
0