Можно ли добавить пользовательский рисунок в imageView в виджете главного экрана Android?

Я делаю виджет домашнего экрана для Android и хочу использовать анимацию Lottie в виджете. Я знаю, что LottieAnimationView не поддерживается, так как виджет поддерживает только некоторые представления. Но могу ли я использовать этот пользовательский рисуемый ЛоттиDrawable для использования в ImageView в виджете?

0
0
643
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Нет простите. Вы можете использовать только доступные для рисования ресурсы или растровые изображения, а не объект Drawable.

Хотя в вашем приложении есть Lottie, ваше приложение не отображает виджет приложения. На главном экране отображается виджет приложения. Следовательно, система RemoteViews ограничивает вас вещами, которые являются частью фреймворка, которые сможет использовать любой домашний экран.

Я не знал разницы между ресурсами для рисования и объектом для рисования. Есть ли документ подтверждающий это? Спасибо!

Pedro Romano Barbosa 25.06.2019 20:29

@PedroRomanoBarbosa: Если вы посмотрите на JavaDocs для RemoteViews, вы не найдете никаких методов, которые принимают параметр Drawable.

CommonsWare 25.06.2019 20:31

Да, это возможно. Попробуйте что-то вроде этого:

Paint p = new Paint(); 
p.setAntiAlias(true);
p.setStyle(Style.STROKE);
p.setStrokeWidth(8);
p.setColor(0xFFFF0000);

Bitmap bitmap = Bitmap.createBitmap(100, 100, 
Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
canvas.drawArc(new RectF(10, 10, 90, 90), 0, 270, false, p);

RemoteViews views = new 
RemoteViews(updateService.getPackageName(), R.layout.main);
views.setImageViewBitmap(R.id.canvas, bitmap);

ComponentName componentName = new 
ComponentName(updateService, 
DashboardAppWidgetProvider.class);
AppWidgetManager appWidgetManager = 
AppWidgetManager.getInstance(updateService);
appWidgetManager.updateAppWidget(componentName, 
views);

Другие вопросы по теме