2012-08-28 3 views
2

간단한 슬라이드 쇼 프로그램을 작성하려고합니다. 크기가 다른 사진을 표시 한 다음 크기를 조정하여 화면을 채우고 싶습니다. 이미지 뷰의 크기를 변경할 수 있으며 디버거에서 새 너비로 설정되었지만 비트 맵의 ​​배율을 조정하지 않습니다. 은이 작업을 수행하는 방법입니다 ?????Android : ImageView의 크기를 조정하려고하므로 이미지가 너비를 채우고 높이가 조절됩니다.

코드 :

ImageView picImage = (ImageView) findViewById(0);// R.id.viewpic); 
try { 
    String FileName = "canon20.png"; 
    AssetManager assetManager = getAssets(); 
    InputStream inputStream; 
    inputStream = assetManager.open(FileName); 
    Bitmap icon = BitmapFactory.decodeStream(inputStream); 

    int screenWidth = getWindowManager().getDefaultDisplay().getWidth(); 
    int screenHeight = getWindowManager().getDefaultDisplay().getHeight(); 
    int bw = icon.getWidth(); 
    float t = (float) screenWidth/(float) bw; 

    picImage.setImageBitmap(icon); 
    picImage.getLayoutParams().width = screenWidth; 
    picImage.getLayoutParams().height = (int) (icon.getHeight() * t); 
} catch (IOException e) { 
} 
+0

:

그냥 비트 맵 크기를 조정하려면 다음 코드를 사용 // 유래 .com/questions/6410364/how-to-scale- 비트 맵 크기 조정을위한 비트 맵 - 화면 크기. – DigitalGhost

+0

picImage의 레이아웃 매개 변수에 문제가있는 것 같습니다. XML 코드를 보여줄 수 있습니까? 사용 가능한 공간 만 채우는 것에 관한 것이라면, FILL_XY를 사용하여 이미지 뷰의'setScaleType' (http://developer.android.com/reference/android/widget/ImageView.html#setScaleType(android.widget.ImageView.ScaleType)을 설정하는 것을 고려해보십시오. 또는 MATRIX (더 많은 제어를 위해).이 경우 RAW 이미지 속성을 처리 할 필요가 없습니다. – xandy

답변

2

예,이 작업을 수행하는 매우 쉬운 방법이 있습니다 : HTTP를 참조

ImageView picImage = (ImageView) findViewById(0);// R.id.viewpic); 
try { 
String FileName = "canon20.png"; 
AssetManager assetManager = getAssets(); 
InputStream inputStream; 
inputStream = assetManager.open(FileName); 
Bitmap icon = BitmapFactory.decodeStream(inputStream); 

int screenWidth = getWindowManager().getDefaultDisplay().getWidth(); 
int screenHeight = getWindowManager().getDefaultDisplay().getHeight(); 
int bw = icon.getWidth(); 
float t = (float) screenWidth/(float) bw; 

picImage.setImageBitmap(icon); 
picImage.getLayoutParams().width = screenWidth; 
picImage.getLayoutParams().height = (int) (icon.getHeight() * t); 
// The following line is the one that scales your bitmap. 
Bitmap scaledIcon = Bitmap.createScaledBitmap(icon, screenWidth, (int) icon.getHeight() * t, false); 
} catch (IOException e) { 
} 
+0

도움을 주셔서 감사합니다. 단 한 줄의 코드 만 추가하면됩니다. –

+0

나를 위해, 그것은 있어야합니다. 이 다른 질문에 대한 올바른 답변 : http://stackoverflow.com/questions/5554682/android-imageview-adjusting-parents-height-and-fitting-width http://stackoverflow.com/questions/2991110/android-how 스트레치 - 이미지 - 스크린 - 너비 - 유지 - 측면 - 대 - 가로 – marceloquinta

관련 문제