微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

动态地向Android小部件添加视图

如何解决动态地向Android小部件添加视图

| 我正在以编程方式在运行时创建视图,并且希望将此视图在运行时动态添加到我的linearlayout中。这是我得到的代码
public class Widget extends appwidgetprovider {

    @Override
    public void onUpdate(Context context,AppWidgetManager appWidgetManager,int[] appWidgetIds) {
        RemoteViews updateViews = new RemoteViews(context.getPackageName(),R.layout.main);

        DemoView dv = new DemoView(context);

            // Stuck here...How do I add my new dv View to my android widget

        appWidgetManager.updateAppWidget(appWidgetIds,updateViews);
        super.onUpdate(context,appWidgetManager,appWidgetIds);
    }


     private class DemoView extends View {
        public DemoView(Context context) {
            super(context);


        }

        @Override
        protected void onDraw(Canvas canvas) {
            super.onDraw(canvas);

            Paint LedColor = new Paint();
            Paint BlankColor = new Paint();
            Path p,p1;
            Matrix m = new Matrix();

            LedColor.setStyle(Paint.Style.FILL);
            LedColor.setColor(0xffffffff);

            BlankColor.setStyle(Paint.Style.FILL);
            BlankColor.setColor(0xff111111);

            DigitPaths dp = new DigitPaths();

            p = dp.GetDigitPath(-1);
            p1 = dp.GetDigitPath(5);

            p.offset(50,50);
            p1.offset(50,50);

            m.setScale(6.5f,6.5f);
            p.transform(m);
            p1.transform(m);
            canvas.drawPath(p,BlankColor);
            canvas.drawPath(p1,LedColor);
        }
    }
}
任何帮助,将不胜感激!     

解决方法

        无法将自定义“ 1”添加到应用小部件。有关允许使用哪种“ 1”类型,请参见“ App Widgets开发指南”的“创建App Widget布局”一节。 Android 3.0添加了对某些视图的支持以显示集合。有关详细信息,请参见“将应用程序小部件与集合一起使用”一节。 否则,要在允许
RemoteViews
膨胀并获得对其的引用之后向App Widget动态添加允许的
View
,可以对in4ѭ中已有的任何
View
对象使用
addView(View)
方法或
addView(View)
方法。     ,        正如布鲁斯正确回答的那样,无法使用自定义视图。由于您的视图似乎不响应输入而只是绘制,因此可以使用ImageView实现相同的功能。只需创建一个位图,使用它创建一个Canvas,然后使用您的onDraw代码在其上进行绘制。然后创建一个ImageView(在小部件中允许),并将其显示的图像设置为Bitmap。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。