是否可以在Android主屏幕小部件中将自定义可绘制对象添加到imageView?

时间:2019-06-25 18:23:52

标签: android android-widget android-animation android-imageview lottie-android

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

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

是的,可以尝试这样的事情-

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