태그:                                 

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

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

[code]
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;
}
[/code]


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

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

[code]
/**
  * 지정한 패스의 파일을 화면 크기에 맞게 읽어서 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);
}
[/code]

관련글

Intel HAXM 설치 후 동작하는지 확인하기... 안드로이드나 타이젠 에뮬레이터를 띄우려면 상당한 리소스와 시간이 소요된다. 이걸 더 원할하게 할 수 있도록 도와주는 역할을 하는게 Intel HAXM인데 설치를 해도 백그라운드에서 조용히 돌아가는 ...
안드로이드 – 카운트 다운 타이머(CountDownTimer)... Handler를 이용하지 않고도 일정 시간이 지난 뒤에 뭔가를 하고 싶은 경우에 사용할 수 있는 CountDownTimer 클래스가 있다. 카운트 다운 타이머는 총 시간과 인터벌을 주고 시작하면 ...
안드로이드 다국어 지원 앱 작성시…... 안드로이드로 다국어를 지원하는 앱을 만드는 방법은 아주 간단하다. 프로그램 코드는 언어에 따라 변경할 것이 거의 없고, 문자열과 화면에 출력할 아이콘이나 그림 파일만 해당 언어에 맞게 작성해서 별도...
ActionBarSherlock를 이용한 탭 내비게이션... 바로 아래 글에 이어 ActionBarSherlock를 이용한 탭 내비게이션 프로그램을 만들어보자. 탭을 3개로 했을 때 필요한 소스 파일은 총 5개. 메인 액티비티 탭 리스너 댑1 처리 소스...
안드로이드 3.0 미만에서도 ActionBar를 써보자... 안드로이드 3.0부터는 ActionBar가 들어갔고, SDK에도 안드로이드 3.0에 해당하는 API 레벨 11부터 ActionBar를 처리할 수 있는 API가 들어가있다. 요즘 앱의 추세가 Acti...
안드로이드 물리버튼 없는 경우에 메뉴 버튼 만들기... 안드로이드폰을 보면 요즘 물리/하드웨어버튼을 탑재하지 않고 출시되는 상황이다 그래서 화면의 일부를 뒤로가기/홈/멀티태스킹 또는 메뉴 버튼으로 사용한다. 메뉴 버튼이 있는 경우에는 하드웨어 버튼의 메...
[펌] 안드로이드 이미지 라운드처리하기 및 가로세로 비율 맞춰 크기 변경하기

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다