티스토리 뷰
728x90
반응형
public class UnitConverter {
public static int dpToPx(int dp) {
return (int) (dp * Resources.getSystem().getDisplayMetrics().density);
}
public static int pxToDp(int px) {
return (int) (px / Resources.getSystem().getDisplayMetrics().density);
}
}
public class RoundedImageView extends ImageView {
public RoundedImageView(Context context) {
super(context);
}
public RoundedImageView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public RoundedImageView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
private int radiusDp = 0;
public void setRadiusDp(int radius) {
this.radiusDp = radius;
}
public int getRadiusDp() {
return radiusDp;
}
@Override
protected void onDraw(Canvas canvas) {
final Path clipPath = new Path();
final float radius = UnitConverter.dpToPx(radiusDp);
final float padding = 0;
final int w = this.getWidth();
final int h = this.getHeight();
clipPath.addRoundRect(new RectF(padding, padding, w - padding, h - padding), radius, radius, Path.Direction.CW);
canvas.clipPath(clipPath);
super.onDraw(canvas);
}
}
반응형
'모바일 프로그래밍' 카테고리의 다른 글
iOS Collection element of type 'double' is not an Objective-C object (0) | 2016.12.26 |
---|---|
iOS Xcode에서 윈도우에서 작성한 소스코드의 한글(CP949)이 깨지는 현상 해결 (0) | 2016.11.26 |
Android MediaStore Thumbnail 얻기 (0) | 2016.11.16 |
iOS CocoaPods에서 Admob SDK 7.9.1 버전 사용하기 (0) | 2016.07.26 |
Android PHP 인앱 구매 영수증 서버 검증 (0) | 2016.07.21 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday