태그:                                 

imageview에 출력할 이미지의 모서리 라운드 처리하기

원문 링크 : [펌] 안드로이드 이미지 라운드처리하기

public 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 = 10;

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

가로세로 비율 맞춰 크기 늘이기/줄이기(화면 가로 또는 세로 기준)

원문 링크 : [펌] 가로 세로 비율 맞춰 이미지 크기 줄이기

/**
 * 지정한 패스의 파일을 화면 크기에 맞게 읽어서 Bitmap을 리턴
 *
 * @param context
 *	  application context
 * @param imgFilePath
 *	  bitmap file path
 * @return Bitmap
 * @throws IOException
 */
public static Bitmap loadBackgroundBitmap(Context context,
		String imgFilePath) throws Exception, OutOfMemoryError {
	if (!FileUtil.exists(imgFilePath)) {
		throw new FileNotFoundException("background-image file not found : " + imgFilePath);
	}

	// 폰의 화면 사이즈를 구한다.
	Display display = ((WindowManager) context
			.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
	int displayWidth = display.getWidth();
	int displayHeight = display.getHeight();

	// 읽어들일 이미지의 사이즈를 구한다.
	BitmapFactory.Options options = new BitmapFactory.Options();
	options.inPreferredConfig = Config.RGB_565;
	options.inJustDecodeBounds = true;
	BitmapFactory.decodeFile(imgFilePath, options);

	// 화면 사이즈에 가장 근접하는 이미지의 스케일 팩터를 구한다.
	// 스케일 팩터는 이미지 손실을 최소화하기 위해 짝수로 한다.
	float widthScale = options.outWidth / displayWidth;
	float heightScale = options.outHeight / displayHeight;
	float scale = widthScale > heightScale ? widthScale : heightScale;
		   
	if (scale >= 8)
		options.inSampleSize = 8;	else if (scale >= 6)
		options.inSampleSize = 6;
	else if (scale >= 4)
		options.inSampleSize = 4;
	else if (scale >= 2)
		options.inSampleSize = 2;
	else
		options.inSampleSize = 1;
	options.inJustDecodeBounds = false;

	return BitmapFactory.decodeFile(imgFilePath, options);
}

관련글

[펌] 안드로이드 이미지 라운드처리하기 및 가로세로 비율 맞춰 크기 변경하기

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다