펌 OK (출처 표시), 상업적 이용 NO, 컨텐츠 변경 NO



간단하게 아래와 같이 하면 된다.


Bitmap bitmap = BitmapFactory.decodeResource(getApplicationContext().getResources(), R.drawable.share_img);



댓글을 달아 주세요

펌 OK (출처 표시), 상업적 이용 NO, 컨텐츠 변경 NO



비트맵, 파일이 저장될 경로, 저장할 파일명을 넘겨받아서


JPEG 파일로 저장하는 방법이다.


public static void SaveBitmapToFileCache(Bitmap bitmap, String strFilePath, String filename) {


File file = new File(strFilePath);


if (!file.exists())

file.mkdirs();


File fileCacheItem = new File(strFilePath + filename);

OutputStream out = null;


try {

fileCacheItem.createNewFile();

out = new FileOutputStream(fileCacheItem);


bitmap.compress(CompressFormat.JPEG, 100, out);

} catch (Exception e) {

e.printStackTrace();

} finally {

try {

out.close();

} catch (IOException e) {

e.printStackTrace();

}

}

}





댓글을 달아 주세요

  1.  댓글주소  수정/삭제  댓글쓰기 엔젤 2015.04.13 17:35

    티스토리 초대장 요청드립니다 ^^ 초대장 발송해주시면 감사드리겠습니다. communication@monitorapp.com

펌 OK (출처 표시), 상업적 이용 NO, 컨텐츠 변경 NO

요점은 ACTION_DOWN 이벤트 발생 시, 해당 좌표값 저장, 이후 MOVE 발생 시

다른 변수에 해당 값 저장. 둘의 값 비교 == 이동량

이미지를 기존 이미지 위치 - 이동량 하여 새로그려줌

그리고 처음 DOWN때 위치를 저장한 변수에 두번째 값을 넘겨주고

다시 MOVE 이벤트 발생시 값 갱신 하는식으로

MOVE시마다 이전값과 이후값의 차가 이동한 거리이므로 계속 새려그려주면 손가락을 따라 움직이는것처럼 표현된다.


float saveX, saveY;

float moveX, moveY;

float diffX, diffY;

@Override

public boolean onTouchEvent(MotionEvent event) {

if (event.getAction() == MotionEvent.ACTION_DOWN) {

saveX = event.getX();

saveY = event.getY();

}

if (event.getAction() == MotionEvent.ACTION_MOVE) {

moveX = event.getX();

moveY = event.getY();

diffX = saveX - moveX;

diffY = saveY - moveY;

// SurfaceViewView에 따라 그리는 방식은 달라짐. SurfaceView같은경우

canvas.canvas = mHolder.lockCanvas();

canvas.drawBitmap(img, 기존이미지X - diffX, 기존이미지Y - diffY, p);

holder.unlockCanvasAndPost(canvas);

//뷰같은경우 locakCanvas(); 대신 invalidate();로 재호출.

saveX = moveX;

saveY = moveY;

}

}


그리기 부분은 따로 설명하지 않았다. 새로운 포스트로 소개할듯 싶지만,

그 전에 궁금한부분이 있으면 댓글주기바람



댓글을 달아 주세요