2014-04-09 2 views
1

비트 맵의 ​​크기를 조정하는 방법을 알 수 없습니다. 여기에 게시물을 기반으로 Bitmap.createScaledBitmap 그것을하는 방법이지만 그것은 나를 위해 작동하지 않습니다. 뷰의 본질 때문에 onDraw에서 모든 것을하고 있기 때문에 레이아웃이나 ImageView를 사용할 수 없다고 생각합니다. 내가하는 일은 다음과 같습니다.비트 맵의 ​​크기를 조정하지 않고 비트 맵의 ​​크기를 조정하면보기가 확대됩니다.

200x200 인 엠파이어 스테이트 빌딩의 이미지가 있습니다. 나는이 코드를 실행을 설정하려면 :

private void setupBitmap() { 

     int bitmapSize = 100; 

     Bitmap originalBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.empirestate_sm); 
     myBitmap = Bitmap.createScaledBitmap(originalBitmap, bitmapSize, bitmapSize, true); 
    } 

이것은 내 된 onDraw입니다 : 여기

protected void onDraw(Canvas canvas) { 
     canvas.drawBitmap(myBitmap, 0, 0, null); 
    } 

하고 결과를 이미지 그냥 자른 크기가 조정되지주의 :

enter image description here

단지 & g의 경우 bitmapSize = 200으로 설정하면 다음과 같이 표시됩니다.

enter image description here

+0

그래서 그 당신이 그 다음 큰 부모보기 – pskink

답변

3

좋아. 나를 위해 일한 것은 당신이 그것을 만들 때 비트 맵을 그대로 두는 것입니다. 그런 다음 캔버스에 그릴 때 올바른 크기로 설정하십시오. createScaledBitmap 함수가 고장 났다고 가정합니다 ??

myCanvas.drawBitmap (landmarkImg, null, new RectF((float)0,(float)0,newWidth,newHeight),null); 
0

당신은 이미지 뷰를 사용하여 시도 할 수 있습니다 : 나는 그것을 알아 냈어요

ImageView iv = (ImageView) findViewById(R.id.imageview); 

Bitmap originalBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.empirestate_sm); 
myBitmap = Bitmap.createScaledBitmap(originalBitmap, bitmapSize, bitmapSize, true); 

iv.setImageBitmap(myBitmap); 
+0

에 직접 비트 맵을 그릴 싶지 않는 경우 어떻게 캔버스로 이미지 뷰를 그릴 마십시오보기로 잘린? – Pickles

관련 문제