2012-07-10 13 views
5

मैं एक ऐप विकसित कर रहा हूं जो गैलरी से एक छवि चुनता है और फिर उस छवि को वॉलपेपर के रूप में सेट करता है। लेकिन यहां समस्या यह है कि छवि का केवल एक हिस्सा वॉलपेपर के रूप में सेट किया गया है, पूरी छवि नहीं, लेकिन मैं पूरी छवि को वॉलपेपर के रूप में सेट करना चाहता हूं। क्या आप कृपया मुझे बता सकते हैं कि यह कैसे किया जा सकता है ???वॉलपेपर के रूप में स्क्रीन पर पूरी छवि को फिट करने के लिए कैसे करें

WallpaperManager wm = (WallpaperManager) getSystemService(WALLPAPER_SERVICE); 
wm.setBitmap(bitmap); 
wm.suggestDesiredDimensions(w, h); 

और अनुमतियां जोड़ने के लिए याद रखें::

<uses-permission android:name="android.permission.SET_WALLPAPER_HINTS"/> 
<uses-permission android:name="android.permission.SET_WALLPAPER"/> 
+0

क्या आप अपना खुद का वॉलपेपर ऐप बना रहे हैं, या आप स्टॉक वॉलपेपर का उपयोग कर रहे हैं? – XGouchet

उत्तर

7

वॉलपेपर सेट आकार परीक्षण किया यह काम कर रहा है उम्मीद है कि यह आपकी मदद करता है:

final WallpaperManager wallpaperManager = (WallpaperManager)getSystemService(
       Context.WALLPAPER_SERVICE);  

Bitmap myBitmap = Bitmap.createScaledBitmap(Const.cropped_bitmap, wallpaperManager.getDesiredMinimumWidth(), wallpaperManager.getDesiredMinimumHeight(), true); 
wallpaperManager.suggestDesiredDimensions(wallpaperManager.getDesiredMinimumWidth(), wallpaperManager.getDesiredMinimumHeight()); 

try { 

    wallpaperManager.setBitmap(myBitmap); 
    Toast.makeText(CropImageActivity.this, CropImageActivity.this.getString(R.string.wallpaper_has_been_set), 0).show(); 
} catch (IOException e) { 
    e.printStackTrace(); 
    Toast.makeText(CropImageActivity.this, "Wallpaper not set", 0).show(); 
} 
+0

धन्यवाद। यह मेरे लिए काम किया। – moDev

+2

'सुझाए गए संशोधित आयाम()' विधि पर दस्तावेज़ से संदेश नोट करें: ** "डेवलपर्स नोट करें, जो इसे पढ़ते प्रतीत नहीं होते हैं। यह होम स्क्रीन के लिए यह बताता है कि वे कौन सा आकार वॉलपेपर चाहते हैं। कोई और नहीं होना चाहिए इसे कॉल करना! निश्चित रूप से अन्य गैर-होम-स्क्रीन ऐप्स जो वॉलपेपर को बदलते हैं। उन ऐप्स को सुझाए गए आकार को पुनर्प्राप्त करना होता है ताकि वे एक वॉलपेपर बना सकें जो उससे मेल खाता हो। "** –

0

कोशिश करो मैं अपनी छवि का आकार करने के लिए

यहाँ मेरी कोड है ...

public class Scaleimage extends Activity { 
    /** Called when the activity is first created. */ 

    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     String FileName; 
     File file = new File("/sdcard/pictures"); 
     File[] imageFiles = file.listFiles(); 
     if(imageFiles.length > 0) { 
      FileName = imageFiles[0].getName(); 
     final WallpaperManager wallpaperManager = WallpaperManager.getInstance(getBaseContext()); 
     Bitmap myBitmap = BitmapFactory.decodeFile("/sdcard/pictures" + "/" + FileName); 

     DisplayMetrics displayMetrics = new DisplayMetrics(); 
     getWindowManager().getDefaultDisplay().getMetrics(displayMetrics); 
     int height = displayMetrics.heightPixels; 
     int width = displayMetrics.widthPixels << 1; 
     myBitmap = Bitmap.createScaledBitmap(myBitmap,width, height, true); 
     try { 
      wallpaperManager.setBitmap(myBitmap); 
     } catch (Exception e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
    } 
} 
संबंधित मुद्दे