2013-05-22 4 views
1

둥근 모서리가있는 이미지가있는 LinearLayout의 배경을 만들려고합니다. 나는 그것을하는 법을 많이 보았지만 정확히 원하는 것은 아닙니다. 대부분의 경우 나는 패딩을 사용하는 사람들이 그것을 만들 본 적이 있지만 나는이 작업을 수행 할 때 국경의 종류를 그립니다, 나는 어떤 경계, 내가 사용테두리없이 모서리가 둥근 모서리가있는 이미지를 만드는 방법

<?xml version="1.0" encoding="UTF-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item > 
    <shape> 
      <corners android:topLeftRadius="20dp" android:topRightRadius="20dp"/> 
    </shape> 
    </item> 
    <item > 
     <bitmap android:src="@drawable/header"/> 
    </item> 
</layer-list> 

답변

3

로맹 가이의 이미지 위에 배치 할 수 있습니다. 트릭은 Paint를 BitmapShader와 함께 사용하여 둥근 사각형을 단순한 색상이 아닌 텍스처로 채 웁니다.

http://www.curious-creature.org/2012/12/11/android-recipe-1-image-with-rounded-corners/

샘플은 https://docs.google.com/file/d/0B3dxhm5xm1sia2NfM3VKTXNjUnc/edit?pli=1

가 여기에 또 다른 링크

입니다 @ 다운로드 할 수 있습니다 How to make an ImageView with rounded corners?

또 다른 링크

http://ruibm.com/?p=184

public class ImageHelper { 
public static Bitmap getRoundedCornerBitmap(Bitmap bitmap, int pixels) { 
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 = pixels; 

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

당신이 ImageView를 사용하여 시도 할 수 있습니다 당신에게 도움이 될 것입니다 바랍니다. 이미지보기에서

android:src="@drawable/yourimage" 
android:background="@drawable/cornershape" 

이제 FrameLayout의 이미지보기를 사용하십시오. 그래서 다른 레이아웃은 둥근 모서리

사용 Canvas.drawRoundRect를 사용하여 모서리가 둥근 직사각형()을 그릴 수있는 커스텀 드로어 블과 ImageView

1

Android Support Library v4에서 RoundedBitmapDrawable을 (를) 사용할 수 있습니다. 인스턴스를 만들고 모서리 반경을 설정하면됩니다.

RoundedBitmapDrawable roundedBitmapDrawable = RoundedBitmapDrawableFactory.create(getResources(), bitmap); 
final float roundPx = (float) bitmap.getWidth() * 0.06f; 
roundedBitmapDrawable.setCornerRadius(roundPx); 
관련 문제