2014-07-26 21 views

Trả lời

12

Sử dụng

final WallpaperManager wallpaperManager = WallpaperManager.getInstance(this); 
final Drawable wallpaperDrawable = wallpaperManager.getDrawable(); 

để có được những hình nền hiện tại. Sau đó, đặt làm nền ứng dụng của riêng bạn:

LinearLayout ll = (LinearLayout) findViewById(R.id.myLinearLayout);//Substitute with your layout 
ll.setBackground(wallpaperDrawable); 

Tất cả điều này sẽ xảy ra trong onCreate() nếu bạn muốn làm nền ban đầu.

+0

lớn công việc Robin, cảm ơn bạn. . – virho

7

Trong khi câu trả lời của @ Robin đặt nền hoạt động thành hình nền của màn hình chính, nó hiển thị toàn bộ bản vẽ cùng một lúc, mà trong hầu hết các trường hợp làm sai lệch nó (nén theo chiều ngang).

Một giải pháp khác, có thể tốt hơn hoặc tệ hơn tùy thuộc vào nhu cầu chính xác của bạn, là đặt chủ đề Hoạt động thành chủ đề kế thừa từ Theme.Wallpaper. Tôi thấy điều này có phần dễ dàng hơn và hệ thống tự động hiển thị cho bạn một lát hình nền thích hợp, đó là những gì tôi muốn và mong đợi.

res/styles.xml:

<style name="wallpaper_theme" parent="@android:style/Theme.Wallpaper"> 
</style> 

AndroidManifest.xml:

<activity 
    ... 
    android:theme="@style/wallpaper_theme" 
/> 
Các vấn đề liên quan