各位大侠:本人正在做一小软件,从网上下载图片,然后根据屏幕大小将图片等比缩放,缩放的结果是或者宽满,或者是高满,现在在800*480的屏幕下图片的宽已经放大到480了,为什么显示的图片没有宽满呢。四周都有黑边,在480*320的屏下就没问题,网上说是大屏的支持问题,我已经加了<uses-sdk android:minSdkVersion="9" /><supports-screens 
          android:largeScreens="true"  
          android:normalScreens="true" 
          android:smallScreens="true" 
          android:anyDensity="true"  
    /> ,还是不起作用,要是把android:anyDensity="true"改成android:anyDensity="false",屏幕的宽就变成533了,这样是达到了效果,软件就不支持多种不同密度了,如何在android:anyDensity="true"下,达到效果呢。 图片缩放代码如下: //重绘图片 
    private Bitmap reDrawBitMap(Bitmap bitmap){ 
            DisplayMetrics dm = new DisplayMetrics(); 
                getWindowManager().getDefaultDisplay().getMetrics(dm); 
                int rHeight=dm.heightPixels; 
                int rWidth=dm.widthPixels; 
//                float rHeight=dm.heightPixels/dm.density+0.5f; 
//                float rWidth=dm.widthPixels/dm.density+0.5f; 
//            int height=bitmap.getScaledHeight(dm); 
//                int width = bitmap.getScaledWidth(dm); 
                int height=bitmap.getHeight(); 
                int width = bitmap.getWidth(); 
                float zoomScale; 
                if(rWidth/rHeight>width/height){//以高为准 
                        zoomScale=((float) rHeight) / height; 
                }else{ //if(rWidth/rHeight<width/height)//以宽为准 
                        zoomScale=((float) rWidth) / width; 
                } 
        // 创建操作图片用的matrix对象   
        Matrix matrix = new Matrix();   
        // 缩放图片动作   
        matrix.postScale(zoomScale, zoomScale);   
        Log.d(TAG,"^^^^^^^^^^^^^^^^^^^^ : " + zoomScale); 
        Bitmap resizedBitmap = Bitmap.createBitmap(bitmap, 0, 0,   
                  bitmap.getWidth(), bitmap.getHeight(), matrix, true);      
        return resizedBitmap; 
        
    } 

解决方案 »

  1.   

    加这个看看
    android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
      

  2.   

    int rWidth=dm.widthPixels;  
    打印看看 
    宽度是480 还是320533 这个不是宽度 肯定是高度
      

  3.   

    高800,宽480,图片是高187,宽292,把图片的宽放大到480,我的理解是宽度应该满屏的,可是不能。已经设置了<uses-sdk android:minSdkVersion="9" /><supports-screens 
      android:largeScreens="true"  
      android:normalScreens="true" 
      android:smallScreens="true" 
      android:anyDensity="true"  
      />