delphi 打开带有外部图库的图像  
官方Delphi 学习QQ群: 682628230(三千人)
频道

delphi 打开带有外部图库的图像



uses

  Androidapi.JNI.GraphicsContentViewText,

  Androidapi.JNI.Media,

  Androidapi.Helpers,

  Androidapi.JNI.Net,

  Androidapi.JNI.JavaTypes,

  Androidapi.JNI.App,

  Androidapi.JNI.Os,

  Androidapi.JNI.Support,

  System.IOUtils;


procedure TTabbedForm.Button1Click(Sender: TObject);

var

  Intent: JIntent;

  FileName, DestFileName: string;

  Data: Jnet_Uri;

  CompName: JComponentName;

  lFile: JFile;

const

  IMAGE_FILENAME = 'small_what.jpg';

begin


  FileName := System.IOUtils.TPath.GetPublicPath + PathDelim + IMAGE_FILENAME; // deployed to "assets"


  DestFileName := TPath.GetDownloadsPath + PathDelim + IMAGE_FILENAME;

  TFile.Copy(FileName, DestFileName, true);


  Intent := TJIntent.Create;

  Intent.setAction(TJIntent.JavaClass.ACTION_VIEW);

  if TJBuild_VERSION.JavaClass.SDK_INT >= TJBuild_VERSION_CODES.JavaClass.N then

  begin

    lFile := TJFile.JavaClass.init(StringToJString(FileName));

    Intent.setFlags(TJIntent.JavaClass.FLAG_GRANT_READ_URI_PERMISSION);

    Data := TJFileProvider.JavaClass.getUriForFile(TAndroidHelper.Context,

      StringToJString('com.embarcadero.TestIntents.fileprovider'), lFile);

  end

  else

    Data := TJnet_Uri.JavaClass.parse(StringToJString('file://' + DestFileName));


  Intent.setDataAndType(Data, StringToJString('image/jpg'));


  try

    TAndroidHelper.Activity.startActivity(Intent);

  except

    on E: Exception do

    begin

      Label1.Text := E.Message;

    end;

  end;



推荐分享
图文皆来源于网络,内容仅做公益性分享,版权归原作者所有,如有侵权请告知删除!
 

Copyright © 2014 DelphiW.com 开发 源码 文档 技巧 All Rights Reserved
晋ICP备14006235号-8 晋公网安备 14108102000087号

执行时间: 0.08117413520813 seconds