를 확인합니다. 아래 이미지는 내가 필요한 것의 예입니다.이미지 뷰 서브 클래스는, 나는이</p> <p><img src="https://i.stack.imgur.com/CiIAx.jpg" alt="enter image description here"><img src="https://i.stack.imgur.com/SjQD5.png" alt="enter image description here"></p> <p>같은 이미지를 촬영하고 이미지의 오른쪽 상단 1/4로를 설정하려고 둥근 마우스 오른쪽 코너
** UPDATE : **
나는 그것이 (일종의) 작업,하지만 이미지를 확장하는 것은 왜곡의 수용 할 수없는 양을 만들어 내 코드는 정말 비효율적 인 것 같다. 이 코드를 향상시키는 방법이나 가능한 더 나은 방법에 대한 아이디어가 있습니까?
나는 발리의 NetworkImageView의 서브 클래스입니다.
여기이 가장 간단한 방법입니다 내 코드
<com.RoundedNetworkImageView
android:id="@+id/smallProductImage"
android:layout_width="56dp"
android:layout_height="56dp"
android:layout_centerVertical="true"
android:layout_margin="5dp"
android:adjustViewBounds="true"
android:background="@android:color/white "
android:scaleType="fitCenter" />
public static Bitmap getCroppedBitmap(Bitmap bmp, int radius) {
Bitmap sbmp;
if (bmp.getWidth() != radius || bmp.getHeight() != radius) {
float smallest = Math.min(bmp.getWidth(), bmp.getHeight());
float factor = smallest/radius;
sbmp = Bitmap.createScaledBitmap(bmp, (int) (bmp.getWidth()/factor), (int) (bmp.getHeight()/factor),
false);
} else {
sbmp = bmp;
}
Bitmap output = Bitmap.createBitmap(radius, radius, Config.ARGB_8888);
Canvas canvas = new Canvas(output);
final int color = 0xffa19774;
final Paint paint = new Paint();
final Rect rect = new Rect(0, 0, radius, radius);
paint.setAntiAlias(true);
paint.setFilterBitmap(true);
paint.setDither(true);
canvas.drawARGB(0, 0, 0, 0);
paint.setColor(Color.parseColor("#BAB399"));
canvas.drawCircle(radius/2 + 0.7f, radius/2 + 0.7f, radius/2 + 0.1f, paint);
paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));
canvas.drawBitmap(sbmp, rect, rect, paint);
Bitmap bitmap = Bitmap.createBitmap(output, output.getWidth()/2, 0, output.getWidth()/2,
output.getHeight()/2);
Bitmap scaledBmp = Bitmap.createScaledBitmap(bitmap, radius, radius, true);
return scaledBmp;
}
왜 하위 클래스입니까? XML을 통해 동일한 것을 얻을 수 있습니다 – Sam
xml을 사용하여 이미지를 자르고 반올림하는 방법은 무엇입니까? 나는 단순히 원을 그리려하지 않는다. – MCR