Представления AppCompat не масштабируются правильноJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Представления AppCompat не масштабируются правильно

Сообщение Anonymous »

Я создаю приложение для Android на Java, используя AppCompat for UI. Мое приложение должно отображать названия и значки приложений, установленных на телефоне, в сетке, для этого я использую RecycleView (VerticalGridView).
Я получаю значки, используя этот Java-код:

Код: Выделить всё

private AppInfo[] loadAppsInfo() {
AppInfo[] appInfo;

PackageManager pm = getPackageManager();

Intent intent = new Intent(Intent.ACTION_MAIN, null);
intent.addCategory(Intent.CATEGORY_LAUNCHER);

List allApps = pm.queryIntentActivities(intent, 0);

final int count = allApps.size();

appInfo = new AppInfo[count];

for (int i = 0; i < count; i++) {
ResolveInfo     ri = allApps.get(i);
ApplicationInfo ai = ri.activityInfo.applicationInfo;

appInfo[i] = new AppInfo(
ai.loadLabel(pm).toString(),
ai.packageName             ,
ai.loadIcon(pm)
);
}

Arrays.sort(appInfo);

return appInfo;
}
Моя проблема в том, что когда я использую любое из представлений AppCompat (

Код: Выделить всё

AppCompatImageView
, AppCompatImageButton, даже Button с setCompoundDrawablesWithIntrinsicBounds()) все они действуют совершенно одинаково, полностью не помещаясь и не масштабируя Drawable, что приводит к следующему:< /p>
screenshot1

screenshot2
Вызов Drawable.setBounds() для изменения размера значка не имеет никакого эффект.
Когда я вместо этого использую ImageView, он работает отлично, но делает мой код более сложным и тяжелым и может вызвать проблемы при использовании векторных изображений в старых версиях Android.
Есть предложения? Заранее спасибо

Подробнее здесь: https://stackoverflow.com/questions/786 ... -correctly
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»