2010-04-16 81 views
29

Tôi chỉ mới bắt đầu với lập trình Android và muốn xem có cách nào để đặt hình ảnh màn hình khóa theo chương trình hay không. Tôi đã tìm thấy nhiều cách khác nhau để đặt hình nền trong API, nhưng dường như tôi không thể tìm ra cách tương đương để đặt hình ảnh màn hình khóa.Cách đặt hình ảnh màn hình khóa android

Tôi đã thấy các bài đăng khác nhau cho rằng việc tùy chỉnh màn hình khóa bằng cách thêm tiện ích hoặc bit ứng dụng là không thể, nhưng chắc chắn phải có cách để đặt hình ảnh theo chương trình?

Chúc mừng,

Robin

Trả lời

13

Không có "hình ảnh trên màn hình khóa" trong Android. Có chắc chắn nhất là không có khái niệm "hình ảnh màn hình khóa" là giống nhau giữa Android chứng khoán, HTC Sense, MOTOBLUR, vv Điều này chỉ đơn giản là không phải là một phần của Android SDK.

Dự án mà Rijk chỉ định là vi phạm bảo mật giả vờ là thay thế màn hình khóa.

+1

Tôi không biết điều đó. Cảm ơn bạn đã chỉ ra điều này! –

+3

Tôi đã downvoted câu trả lời này vì có một ứng dụng cụ thể thực hiện việc này ngay bây giờ. Thanh toán, hãy sử dụng http://seemuse.com/home.html – uptownhr

+4

@uptownhr Tôi sẽ từ chối nhận xét của bạn nếu tôi có thể. Muse là một ứng dụng thay thế màn hình khóa. Nó không đặt nền màn hình khóa.Nó đặt ** ** background riêng của nó khi nó _becomes_ lockscreen. – copolii

3

Có cách để thực hiện trên thiết bị Samsung. Trong mục đích bạn có thể đặt thêm.

intent.putExtra("SET_LOCKSCREEN_WALLPAPER", true); 
startActivity(intent); 

Tôi chỉ thử nghiệm điều này trên một số điện thoại Samsung và không đảm bảo rằng điều này sẽ không bị gián đoạn trong tương lai. Sử dụng cẩn thận.

+0

ohk ý định là gì? –

+0

vui lòng cung cấp ví dụ phù hợp và đầy đủ exapmle –

22

Tính đến API Level 24 họ đã thêm phương pháp mới (và cập nhật các documentation) và cờ đến WallpaperManager cho phép bạn thiết lập một Wallpaper không chỉ đối với màn hình bình thường mà còn cho Lockscreen

Để thiết lập một Wallpaper đến Lockscreen sử dụng cờ mới WallpaperManager.FLAG_LOCK, và một trong những phương pháp mà mất int which

WallpaperManager.getInstance(this).setStream(inputStream, null, true, WallpaperManager.FLAG_LOCK); 

Bạn cũng có thể sử dụng một trong các phương pháp sau

int setStream (InputStream bitmapData, Rect visibleCropHint, boolean allowBackup, int which) 

int setResource (int resid, int which) 

int setBitmap (Bitmap fullImage, Rect visibleCropHint, boolean allowBackup, int which) 

Một bổ sung tốt đẹp là bạn có thể bây giờ cũng kiểm tra nếu bạn được phép kiểm tra giấy dán tường qua isSetWallpaperAllowed, và nhận được các thiết lập hình nền hiện qua getWallpaperFile

Kiểm tra cập nhật documentation cho số WallpaperManager.

0

Có một cách khác để thực hiện việc này. lúc đầu, bạn cần lưu pic mà bạn muốn thiết lập trong lockscreen trong một thư mục (giả sử nó được gọi là "appName") và sau đó, sử dụng mã sau để mở thư viện, sau khi thư viện đã mở. Người dùng mở để mở "appName" thư mục, và chọn ảnh trong thư viện của hệ thống. trong bộ sưu tập, người dùng có thể đặt ảnh làm hình nền hoặc giấy lockscreen.

// mã này để mở thư viện. startActivity (ý định mới (Intent.ACTION_SET_WALLPAPER));

Các vấn đề liên quan