有人能告诉我如何在Delphi XE5-8中以编程方式在Android桌面上设置壁纸吗?
感谢。
答案 0 :(得分:1)
@LURD和@FreeConsulting
的链接副本这是一种设置壁纸的方法。不知道它是对还是错。)
动态壁纸没有太大的不同,所以这是一个起点
使用Java2op生成所有壁纸类的delphi桥文件。
New Fmx poject
将单位添加到您的使用条款中:
将以下内容放在表单上: Button1:TButton; Image1:TImageViewer;
- 醇>
在设计时将图像加载到Image1中。并将Button1设置为onclick到下面。
代码:
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;