android - 如何删除Widget ImageView上的黑色字段

时间:2014-05-22 08:39:27

标签: android android-widget imageview android-canvas

感谢您帮助我解决问题。 我使用setImageViewBitmap通过使用画布绘制圆角来从位图中构建图像视图,但它在imageview的角落中有一个黑色字段。我不知道为什么这只发生在Widget上,但在我的Activity视图中没有发生。 如何让Widget上的角落看起来像活动上的角落?

这是我的情况

Widget上的

http://goo.gl/YpzhJh

活动: http://goo.gl/bc09oL

这是我制作圆角的代码。

public static Bitmap getRoundedCornerBitmap(Bitmap bitmap) {
        Bitmap output = Bitmap.createBitmap(bitmap.getWidth(),
            bitmap.getHeight(), Config.ARGB_8888);
        Canvas canvas = new Canvas(output);

        final int color = 0xff424242;
        //final int color = 0xff000000;
        final Paint paint = new Paint();
        final Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight());
        final RectF rectF = new RectF(rect);
        final float roundPx = 60;

        paint.setAntiAlias(true);
        canvas.drawARGB(0, 0, 0, 0);
        paint.setColor(color);
        canvas.drawRoundRect(rectF, roundPx, roundPx, paint);

        paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));
        canvas.drawBitmap(bitmap, rect, rect, paint);

        return output;
      }

这是设置小部件远程视图的代码

 bitmap = getRoundedCornerBitmap(orgin_bitmap);
 if(bitmap!=null)
     views.setImageViewBitmap(R.id.main_imageview, bitmap);

这里是widget xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/widget_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <RelativeLayout
       android:layout_width="match_parent"
       android:layout_height="wrap_content">

     <ImageView
        android:id="@+id/main_imageview"
        android:layout_width="600dp"
        android:layout_height="600dp"
        android:layout_centerInParent="true"
        android:background="@color/transparent"
        android:visibility="visible"
        android:src="@drawable/widget_back3" />

    <ImageView
        android:id="@+id/imageView2"
        android:layout_width="600dp"
        android:layout_height="600dp"
        android:visibility="visible"
        android:layout_centerInParent="true"
        android:src="@drawable/widget_back2" />

    <ImageView
        android:id="@+id/imageView_redheart"
        android:layout_width="600dp"
        android:layout_height="600dp"
        android:layout_centerInParent="true"
        android:background="@color/blue"
        android:visibility="visible"
        android:src="@drawable/widget_back1" />

    <TextView
        android:id="@+id/now"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_centerVertical="true"
        android:background="@color/transparent"
        android:fontFamily="sans-serif-condensed"
        android:gravity="center"
        android:shadowColor="@color/black"
        android:shadowRadius="3.0"
        android:text="9999"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:textColor="@color/trans"
        android:textSize="25sp"
        android:textStyle="bold" />

    </RelativeLayout>

</LinearLayout>

1 个答案:

答案 0 :(得分:0)

的setBackground(空); 会有所帮助

in xml

android:background="@null"