Pinch IN-OUT 줌 및 원형 자르기 이미지로 사용자 정의 ImageView를 만듭니다. 핀치 인 아웃은 훌륭하지만 이미지 자르기를 시도 할 때 particulr 원 화상을 얻을 수 없습니다. 캔버스 클래스를 기반으로 onTuchListener 및 Circular Cropping을 기반으로 Pinch in-out 작업을 사용하고 있습니다. 자르기에 대한
캔버스 원형 이미지를 사용하여 특정 자르기 이미지를 얻는 방법은 무엇입니까?
@Override
protected void onDraw(Canvas canvas) {
onDrawReady = true;
imageRenderedAtLeastOnce = true;
if (delayedZoomVariables != null) {
setZoom(delayedZoomVariables.scale, delayedZoomVariables.focusX, delayedZoomVariables.focusY, delayedZoomVariables.scaleType);
delayedZoomVariables = null;
}
super.onDraw(canvas);
if (bitmap == null) {
circleWindowFrame(); //Creating circle view
}
canvas.drawBitmap(bitmap, 0, 0, null);
}
protected void circleWindowFrame() {
bitmap = Bitmap.createBitmap(getWidth(), getHeight(), Bitmap.Config.ARGB_8888);
Canvas osCanvas = new Canvas(bitmap);
RectF outerRectangle = new RectF(0, 0, bitmap.getWidth(), bitmap.getHeight());
Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
paint.setColor(getResources().getColor(R.color.overlay));
paint.setAlpha(99);
osCanvas.drawRect(outerRectangle, paint);
paint.setColor(Color.TRANSPARENT);
paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_OUT));
float centerX = getWidth()/2;
float centerY = getHeight()/2;
DisplayMetrics metrics = context.getResources().getDisplayMetrics();
int width = metrics.widthPixels;
float radius = width/2;
osCanvas.drawCircle(centerX, centerY, radius, paint);
}
이 코드 :
전에서 아웃 및 원형 이미지 자르기 핀치에 대해 언급 한 코드 아래에 사용한 ... 사전에
public static Bitmap getCrop() {
Bitmap circleBitmap;
circleBitmap = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Bitmap.Config.ARGB_8888);
BitmapShader shader = new BitmapShader(bitmap, Shader.TileMode.CLAMP, Shader.TileMode.CLAMP);
Paint paint = new Paint();
paint.setShader(shader);
paint.setAntiAlias(true);
Canvas c = new Canvas(circleBitmap);
c.drawCircle(bitmap.getWidth()/2, bitmap.getHeight()/2, bitmap.getWidth()/2, paint);
return bitmap;
}
감사
https://github.com/vinc3m1/RoundedImageView 순환 이미지에이 라이브러리 사용 –
아니요, 원형 자르기 이미지가 필요합니다. ** 첨부 된 이미지를 참조하십시오. ** –
내 대답을 확인 했습니까 –