2012-06-13 243 views
1

我有一个背景图像,它在上面改变,我使用圆角。有没有办法隐藏图像的角落。以下是显示角落的小部件的屏幕截图。 enter image description here背景图像圆形角落

编辑代码:

Bitmap bm1 = BitmapFactory.decodeResource(context.getResources(), Utilities.getDrawableId(ACCUWX.Icons.AL_WIDGETBG_ICON_MAP[Integer.parseInt(wdm.iconCode)])); 
Bitmap roundedBm = Utilities.getRoundedCornerBitmap(bm1); 
toRet.setImageViewBitmap(R.id.widget_bg, roundedBm); 

方法调用:

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 Paint paint = new Paint(); 
     final Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight()); 
     final RectF rectF = new RectF(rect); 
     final float roundPx = 12; 

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

要说明的是我有一个背景图像和圆角在其顶部由一可拉伸利用XML形状制成:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/widget_bg_rl" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:clipChildren="true"> 
    <ImageView 
     android:id="@+id/widget_bg" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:background="@drawable/al_widgetbg_06_07_08" 
     android:scaleType="center" /> 

    <LinearLayout 
     android:id="@+id/current_layout" 
     android:orientation="vertical" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:focusable="true" 
     android:weightSum="8"> 
     <RelativeLayout 
      android:id="@+id/city_time_rl" 
      android:layout_width="match_parent" 
      android:layout_height="0dp" 
      android:layout_weight="2.5" 
      android:background="@drawable/rounded_corners_top" 
      android:clipChildren="true"> 
      <TextView 
       android:id="@+id/city" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_marginLeft="10dp" 
       android:text="MECHANICSBURG" 
       android:textSize="16dp" 
       android:textColor="@color/dk_blue" 
       /> 
+0

什么是R.id.widget_bg? – Aerrow

+0

我希望这个问题出现在R.id.widget_bg中,如果这个布局意味着这个也是一个圆角。 – Aerrow

+0

widget_bg是我加载可能是15张图像之一的图像资源的地方。它们都是矩形的。 – taraloca

回答

0

你应该可以做到这一点通过使背景透明,然后在其顶部绘制圆角矩形。

+0

未接地的角落是否是图像的一部分时,我怎样才能让它透明?它们是您在小部件中心显示的图像的一部分,我已将顶部和底部的圆角放置在顶部。 – taraloca

+0

如果是这种情况,你不能做你想做的事情。 – matt5784