2010-02-05 23 views
7

Olası Çoğalt:
Android - how to set the wallpaper imageAndroid - Duvar kağıdı resmi nasıl ayarlanır?

i ben çaylak yaşıyorum URI (hayır kırpma)

bir görüntüyü kullanarak duvar kağıdı ayarlamak, yapılacak olan çalışıyorum ne

Android'de dev ve genel olarak dev. İnternet, duvar kağıdını ayarlamak için kod sağladığımda başarısız oldu.

evet dev kaynak sitesi

public void setStream (InputStream data)

diyor ama, bazı örnek kod beni çok yardımcı olacağını bunu anlamıyorum.

+0

İlgili: [Android - duvar kağıdı görüntüsünü ayarlama] (http://stackoverflow.com/questions/1964193/android-how-to-set-the-wallpaper-image) – McDowell

cevap

3

Resim URL'niz varsa, akışı (soyutlama) kullanarak temsil ettiği kaynağı açabilirsiniz: new URL("your.image.url.com").openStream(). Bu yöntem çağrısı, setStream() yöntemine bir argüman olarak iletebileceğiniz InputStream türünde bir nesne döndürecektir. Doğrudan bir akışı belirtmek istemiyorum Eğer

, sen uzak Akışı açmak bir Bitmap oluşturmak ve daha sonra ya bir WallpaperManager örneğini kullanabilir veya context.setWallpaper(bitmap) (bu kullanımdan kaldırıldı) duvar kağıdı olarak bitmap ayarlamak için yapabilirsiniz.

Referans için this konusuna bakın.

+0

Bu benim geçerli kodum .. InputStream is = getContentResolver(). OpenInputStream (imageUri); bgImage = BitmapFactory.decodeStream (is); Bağlam içeriği = this.getBaseContext(); context.setWallpaper (bgImage); bgImage (hat 2 ve 4) ve getBaseContext() (hat 3) en ' hatalar da neyin bir URI ve bir URL arasındaki fark? Kısa cevap "Al bir URL bir URI, ancak bir URI bir URL değil" –

+0

tamam ben hatalar 2 ve 4 satırları, ben Bitmap bgImage tanımlanmamış oldu. ama yine de hatalar getBaseContext() –

+0

Bir Etkinlik örneğini doğrudan İçerik olarak iletebileceğinizi biliyor musunuz? Bir this.getBaseContext() yapmanıza gerek yok, mevcut etkinliğin örneğini veya bir bağlam nesnesini geçirebilirseniz, bir ["bu" geçerli bir bağlam nesnesi olurdu) – Samuh

11

Resim kodunuz varsa, bu kodu kullanabilirsiniz.

is = new FileInputStream(new File(imagePath)); 
bis = new BufferedInputStream(is); 
Bitmap bitmap = BitmapFactory.decodeStream(bis); 
Bitmap useThisBitmap = Bitmap.createScaledBitmap(
    bitmap, parent.getWidth(), parent.getHeight(), true); 
bitmap.recycle(); 
if(imagePath!=null){ 
    System.out.println("Hi I am try to open Bit map"); 
    wallpaperManager = WallpaperManager.getInstance(this); 
    wallpaperDrawable = wallpaperManager.getDrawable(); 
    wallpaperManager.setBitmap(useThisBitmap); 

varsa görüntü URI sonra bu

wallpaperManager = WallpaperManager.getInstance(this); 
wallpaperDrawable = wallpaperManager.getDrawable(); 
mImageView.setImageURI(imagepath); 

herhangi bir sorun varsa bana bildirin kullanın.

+0

Bu hattın kullanımı nedir? wallpaperDrawable = wallpaperManager.getDrawable(); –

İlgili konular