2012-06-13 2 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

Смежные вопросы