是否可以在 Android 主屏幕小部件中向 im​​ageView 添加自定义可绘制对象?

Is it possible to add custom drawable to imageView in an Android Home Screen Widget?

我正在为 android 制作一个主屏幕小部件,我想在该小部件上使用 Lottie 动画。我知道 LottieAnimationView 不受支持,因为该小部件仅支持某些视图。但是我可以使用这个自定义可绘制对象 LottieDrawable 在小部件的 ImageView 中使用吗?

不,对不起。您只能使用可绘制资源或位图,不能使用 Drawable 对象。

虽然您的应用程序有 Lottie,但您的应用程序没有呈现应用程序小部件。主屏幕呈现应用程序小部件。因此,RemoteViews 系统将您限制为框架的一部分,任何主屏幕都可以使用。

是的,这是可能的。尝试这样的事情:

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);