2015-04-14 203 views
0

誰能告訴我如何以編程方式在Delphi XE5-8的Android桌面上設置壁紙?
謝謝。如何設置Android壁紙?

+3

http://bit.ly/1FKFpGV –

+0

參見[代碼段來設置設備壁紙在Delphi XE7 Firemonkey在Android(HTTP:// WWW。 fmxexpress.com/code-snippet-to-set-the-device-wallpaper-in-delphi-xe7-firemonkey-on-android/)。 –

回答

1

由@LURD鏈接的複製和@FreeConsulting

這裏有一個方法來設置wallpaper.don't知道它是多麼正確或錯誤)。

動態壁紙是不是太大的不同,所以這是一個起點

  1. 使用Java2op生成所有壁紙類的德爾福橋文件。

  2. 新FMX poject

  3. 單位添加到您的使用條款連同:

  4. 窗體上放置如下: Button1的:TButton的; Image1:TImageViewer;

  5. 在設計時加載圖像到Image1中。並將Button1設置爲在下面。

代碼:

procedure TForm1.Button1Click(Sender: TObject); 
Var 
    FWallpaperManager: JWallpaperManager; 
    Factoryoptions: JBitmapFactory_Options; 
    AScreenSize: TPoint; 
    WidthOfScreen, HeightOfScreen: Integer; 
    FFileToOpen: string; 
begin 
    {Create a filename to save the image to} 
    FFiletoopen:= System.IOUtils.TPath.Combine(System.IOUtils.TPath.GetDocumentsPath, 'Thefile.jpg'); 
    {Save the image} 
    Image1.Bitmap.SaveToFile(FFileToOpen); 
    {Create JBitmap options } 
    Factoryoptions:= TJBitmapFactory_Options.Create; 
    {Read up on these in the android API} 
    Factoryoptions.inJustDecodeBounds:= True; 
    Factoryoptions.inPreferQualityOverSpeed:= True; 
    Factoryoptions.inJustDecodeBounds:= False; 
    {Get the wallpaper manager instance} 
    FWallpaperManager:= TJWallpaperManager.Wrap((SharedActivityContext.GetSystemService 
       (TJContext.JavaClass.WALLPAPER_SERVICE) as ILocalObject).GetObjectID); 
    {Load the image we saved} 
    TheBitmaptoShow:= TJBitmapfactory.JavaClass.DecodeFile(StringToJString(FFiletoopen), FactoryOptions); 
    {Only change the wallpaper if the Bitmap loads} 
    if TheBitmaptoShow <> nil then begin 
    {Set the Wallpaper} 
    FWallpaperManager.SetBitmap(TheBitmaptoShow);   
    end; 
end;