#android #drawable
#Android #drawable
Вопрос:
Я сделал
Drawable drawable = ResourcesCompat.getDrawable(getResources(), R.drawable.ic_deletebutton, null);
System.out.println(drawable.getBounds());
и получил
I/System.out: Rect(0, 0 - 0, 0)
Почему? И как узнать размер «drawable», который хранится в файле?
Ny drawable выглядит так
Комментарии:
1. Вы хотите знать высоту и ширину правильно? вы пробовали
drawable.getIntrinsicWidth()
amp;drawable.getIntrinsicHeight()
Ответ №1:
getBounds()
Метод возвращает границы объекта рисования, если он уже виден на экране. Итак, взгляните на этот код.
// Before
Drawable drawable = ResourcesCompat.getDrawable(getResources(), R.drawable.ic_deletebutton, null);
System.out.println(drawable.getBounds());
Вывод: Rect(0, 0 — 0, 0)
//After
Drawable drawable = ResourcesCompat.getDrawable(getResources(), R.drawable.ic_deletebutton, null);
imageView.setImageDrawable(drawable);
System.out.println(drawable.getBounds());
Вывод: Rect(0, 0 — 88, 88)
Во втором случае он вернет границы в виде Rect
объекта, где верхний левый угол — это точка (0,0), а нижний правый угол представляет размеры объекта рисования.
Если вам нужно получить размер чертежа, не отображая его на экране, вы должны следовать решению @Mouaad и использовать drawable.getIntrinsicWidth()
drawable.getIntrinsicHeight()
методы и для их поиска.