Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Tıklanılan Image'yi Android Galeride Açmak
#8
(06-10-2023, Saat: 06:06)emozgun Adlı Kullanıcıdan Alıntı: @kajmerantime resimleri kendi uygulaman ile düzenlemek istiyorsan önce bitmap olarak açman lazım. Delphi ile Android 11 SDK 30 Kapsamlı Depolama Scoped Storage : SAF & MediaStore API konusundaki bit eşlem / bitmap kod parçacığı, Bitmap URI'si verilen bir dosyanın nasıl açılacağını gösteriyor, ekindeki veya github'daki örnek proje ile ImageControl1'a aldıktan sonra düzenleme yapabilirsin
Hocam galeride açmak yerine uygulamanın kendi içinde düzenlemek için şöyle bir kod yazdım. Windowsta çalıştırdığım zaman çizim yapabiliyorum istediğim şekilde. Fakat Android cihazda çalıştırdığımda çizim yapmaya başladığım gibi fotoğraf gidiyor. Image kayboluyor bir anda. Destek aldım bir çok şey denedim fakat düzelmedi. Birde çizim işlemini yaptıktan sonra çizim görünüyor. Parmağımla senkronize olmuyor. İlginiz için tekrardan teşekkürler. 

unit Unit1;

interface

uses
System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
 FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.StdCtrls, FMX.Objects,
 FMX.Gestures;

type
 TForm1 = class(TForm)

   imgDrawing: TImage;
   PaintBox1: TPaintBox;
   GestureManager1: TGestureManager;
//    procedure imgDrawingGesture(Sender: TObject; const EventInfo: TGestureEventInfo; var Handled: Boolean);
   procedure FormCreate(Sender: TObject);
   procedure PaintBox1MouseDown(Sender: TObject; Button: TMouseButton;
     Shift: TShiftState; X, Y: Single);
   procedure PaintBox1MouseMove(Sender: TObject; Shift: TShiftState; X,
     Y: Single);
   procedure PaintBox1MouseUp(Sender: TObject; Button: TMouseButton;
     Shift: TShiftState; X, Y: Single);
   procedure PaintBox1Gesture(Sender: TObject;
     const EventInfo: TGestureEventInfo; var Handled: Boolean);

 private
   { Private declarations }
   IsDrawing: Boolean;
   LastX, LastY: Single;
   Bitmap: TBitmap;
   Canvas: TCanvas;
   Drawing: Boolean;
   FStartPoint: TPointF;
   DrawingBitmap: TBitmap;
 public
   { Public declarations }
 end;

var
 Form1: TForm1;
 Drawing : Boolean;

implementation

{$R *.fmx}

procedure TForm1.FormCreate(Sender: TObject);
begin
 Drawing := False;
 LastX := 0;
 LastY := 0;

 Bitmap := TBitmap.Create;
 Bitmap.SetSize(Round(imgDrawing.Width), Round(imgDrawing.Height));
 Bitmap.Clear(TAlphaColorRec.Null);
end;

procedure TForm1.PaintBox1Gesture(Sender: TObject;
 const EventInfo: TGestureEventInfo; var Handled: Boolean);
begin
 if EventInfo.GestureID = igiPan then
 begin
   imgDrawing.Visible := True;
   if EventInfo.Flags = [TInteractiveGestureFlag.gfBegin] then
   begin
      imgDrawing.Visible := True;
     // Pan hareketi başladığında çizim işlemini başlatın
     PaintBox1.Canvas.BeginScene;
     PaintBox1.Canvas.Stroke.Color := TAlphaColorRec.Yellow;
     PaintBox1.Canvas.Stroke.Thickness := 10;
   end
   else if EventInfo.Flags = [TInteractiveGestureFlag.gfEnd] then
   begin
     imgDrawing.Visible := True;
     // Pan hareketi bittiğinde çizim işlemini sonlandırın
     PaintBox1.Canvas.EndScene;
   end
   else
   begin
     imgDrawing.Visible := True;
     // Pan hareketi devam ederken çizim yapın
     PaintBox1.Canvas.DrawLine(EventInfo.Location, EventInfo.Location, 1);
   end;
   Handled := True;
 end;
end;

procedure TForm1.PaintBox1MouseDown(Sender: TObject; Button: TMouseButton;
 Shift: TShiftState; X, Y: Single);
begin
 Drawing := True;
 LastX := X;
 LastY := Y;
end;

procedure TForm1.PaintBox1MouseMove(Sender: TObject; Shift: TShiftState; X,
 Y: Single);
begin
 if Drawing then
 begin
   imgDrawing.Canvas.BeginScene;
   try
     PaintBox1.Canvas.Stroke.Color := TAlphaColorRec.Yellow;
     PaintBox1.Canvas.Stroke.Thickness := 10;
     PaintBox1.Canvas.DrawLine(TPointF.Create(LastX, LastY), TPointF.Create(X, Y), 1);
   finally
     imgDrawing.Canvas.EndScene;
   end;
   LastX := X;
   LastY := Y;
 end;
end;

procedure TForm1.PaintBox1MouseUp(Sender: TObject; Button: TMouseButton;
 Shift: TShiftState; X, Y: Single);
begin
 Drawing := False;
end;

end.
Cevapla


Bu Konudaki Yorumlar
Cvp: Tıklanılan Image'yi Android Galeride Açmak - Yazar: kajmerantime - 06-10-2023, Saat: 09:10

Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Android Uygulama İkonu ARM 2 400 11-11-2025, Saat: 12:15
Son Yorum: ARM
  Android SDK kajmerantime 1 384 28-10-2025, Saat: 14:53
Son Yorum: cinarbil
  Android El Terminali Barkod Okuyucu Verisi tuna 0 333 17-10-2025, Saat: 01:07
Son Yorum: tuna
  Android işlem öneriliyor uyarısı! Coban 9 1.863 07-08-2025, Saat: 12:07
Son Yorum: RAD Coder
  FMX Android Adaptive Icons kullanabilir miyiz? egeven 1 2.156 30-06-2025, Saat: 21:46
Son Yorum: emozgun



Konuyu Okuyanlar: 1 Ziyaretçi