代码之家  ›  专栏  ›  技术社区  ›  Peterdk

android:appwidget与自定义视图不工作

  •  16
  • Peterdk  · 技术社区  · 14 年前

    我正在创建一个由一个名为foo的自定义视图组成的AppWidget。

    XML/WIDGET.XML:

    <appwidget-provider
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:minWidth="294dp"
     android:minHeight="72dp"
     android:updatePeriodMillis="0"
     android:initialLayout="@layout/widget_layout">
    </appwidget-provider>
    

    布局/小部件布局

    <LinearLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent">
     <package.name.Foo
     android:layout_width="fill_parent"
     android:layout_height="fill_parent"
     />
    </LinearLayout>
    

    Foo:

      public class Foo extends View 
      {..}
    

    我测试了 Foo 在一个普通的Android应用程序中查看,它工作得很好。但是,当我尝试运行小部件时 "error while loading widget" . 当我移除 从小部件查看,一切正常。所以这和 查看。

    不幸的是,我无法在DDMS中获得任何更具体的错误,因为我不知道如何调试小部件。

    我想知道是否确实可以在应用程序小部件中使用您自己的自定义视图? 我在这里做错什么了吗?

    4 回复  |  直到 12 年前
        1
  •  44
  •   Chrispix    14 年前

    MyView myView = new MyView(context);
    myView.measure(150,150);
    myView.layout(0,0,150,150);
    myView.setDrawingCacheEnabled(true);
    Bitmap bitmap=myView.getDrawingCache();
    remoteViews.setImageViewBitmap(R.id.dial, bitmap);
    
        2
  •  12
  •   biegleux piyush    12 年前

    getDrawingCache()

    MyView myView = new MyView(this);
    myView.measure(500, 500);
    myView.layout(0, 0, 500, 500);
    Bitmap bitmap = Bitmap.createBitmap(500, 500, Bitmap.Config.ARGB_8888);
    myView.draw(new Canvas(bitmap));
    remoteViews.setImageViewBitmap(R.id.imageView, bitmap);
    

        3
  •  8
  •   hanspeide    14 年前
        4
  •  6
  •   xandy    14 年前