2013-03-29 47 views
2

我有一個View現在我試圖將它保存爲修復大小例如500*666到sdcard。圖像保存成功,但圖像保存如下。圖像保存爲整個圖像的角落請參閱附加圖像。如何縮放和保存查看SD卡

代碼:

private void onSave(final View v) { 
v.setMinimumWidth(500); 
     v.setMinimumHeight(666); 
Bitmap viewBitmap_save = null; 

          savingdialog(); 
          DisplayMetrics dm = new DisplayMetrics(); 
          getWindowManager().getDefaultDisplay().getMetrics(
            dm); 
          Display display = getWindowManager() 
            .getDefaultDisplay(); 

          viewBitmap_save = Bitmap.createBitmap(500, 666, 
            Bitmap.Config.ARGB_8888);// i 
          Canvas canvas = new Canvas(viewBitmap_save); 
          v.draw(canvas); 
          try { 
           Random randomGenerator = new Random(); 
           long RANDOMFILENUMBER = randomGenerator 
             .nextLong(); 
           File wallpaperDirectory = new File(
             "/sdcard/Image Telling/"); 
           // have the object build the directory 
           // structure, if needed. 
           wallpaperDirectory.mkdirs(); 
           // create a File object for the output file 

           // FileOutputStream outStream = new 
           // FileOutputStream(file); 
           File outputFile = new File(wallpaperDirectory, 
             RANDOMFILENUMBER + ".png"); 
           FileOutputStream outStream = new FileOutputStream(
             outputFile); 
           viewBitmap_save.compress(CompressFormat.PNG, 
             100, outStream); 

           sendBroadcast(new Intent(
             Intent.ACTION_MEDIA_MOUNTED, 
             Uri.parse("file://" 
               + Environment 
                 .getExternalStorageDirectory()))); 

          } catch (Exception e) { 
           // TODO: handle exception 
          } 
} 

我給寬和高的修復,因爲我需要的圖像作爲固定大小。如何縮放查看?請幫幫我。

enter image description here

回答

1

只是一個建議。

不要給任何高度,寬度來查看,然後得到原始視圖的位圖。

一旦你得到了位圖從視圖中創建,然後應用縮放..你可以使用Bitmap.createScaledBitmap()

,然後保存該縮放位圖。

+0

實際上我使用的viewflipper有不同的孩子現在當用戶點擊保存按鈕我想保存當前的孩子從視圖鰭狀肢 查看viewtosave = vf_letters.getCurrentView(); 它給我目前的ViewFlipper 視圖,我試圖保存。 –

+0

您是否按照我在評論之前所說的那樣進行了嘗試?....「創建了viewtosave的位圖...而沒有給出高度寬度..一旦創建了位圖然後將其縮小」。 – MKJParekh

+0

是的,我嘗試了它。我刪除 v.setMinimumWidth(500);和v.setMinimumHeight(666);並創建位圖。但如何縮放它來修復尺寸是500 * 666? –