如何设置Android壁纸?

时间:2015-04-14 11:46:47

标签: android delphi

有人能告诉我如何在Delphi XE5-8中以编程方式在Android桌面上设置壁纸吗?
感谢。

1 个答案:

答案 0 :(得分:1)

@LURD和@FreeConsulting

的链接副本

这是一种设置壁纸的方法。不知道它是对还是错。)

动态壁纸没有太大的不同,所以这是一个起点

  
      
  1. 使用Java2op生成所有壁纸类的delphi桥文件。

  2.   
  3. New Fmx poject

  4.   
  5. 将单位添加到您的使用条款中:

  6.   
  7. 将以下内容放在表单上:   Button1:TButton;   Image1:TImageViewer;

  8.   
  9. 在设计时将图像加载到Image1中。并将Button1设置为onclick到下面。

  10.   

代码:

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;