Android Photo Resize sorunu (proje ektedir)

FireMonkey ve Mobil uygulama (iOS, Android, Windows Phone) ile ilgili sorularınızı bu foruma sorabilirsiniz.
Cevapla
delphimaker
Üye
Mesajlar: 10
Kayıt: 04 May 2016 05:58

Android Photo Resize sorunu (proje ektedir)

Mesaj gönderen delphimaker »

Arkadaşlar her ne yaptımsa bir türlü "PAN" ve "ZOOM" hareketini istediğim gibi yapamadım. projeye bakıp nere de hata yaptığım konusunda fikirlerinizi rica ediyorum.



KAYNAK PROJE
http://www68.zippyshare.com/v/zKvbhtBr/file.html
Kullanıcı avatarı
fesiharslan
Üye
Mesajlar: 591
Kayıt: 20 Eki 2006 11:37
Konum: Erzurum
İletişim:

Re: Android Photo Resize sorunu (proje ektedir)

Mesaj gönderen fesiharslan »

Merhaba;
Pan ve Zoom işlemleri için;
1- Forma bir adet GestureManager ve bir Image nesnesi yerleştirin.
2- Image nesnesine herhangi bir resim ekleyin.
3- Object Inspector'dan Formun Touch>GestureManager özelliğinde GestureManager1'i seçin.
4- Object Inspector'dan Formun Touch>InteractiveGestures özelliğinin Zoom ve Pan özelliğini True yapın.
5- Lokal değişken bölümünde aşağıdaki tanımlamaları yapın;

Kod: Tümünü seç

  private
    FEnSonKonum: TPointF;
    FEnSonMesafe: Integer;
6- Formun OnGesture olayında aşağıdaki kodları yazın.

Kod: Tümünü seç

var
  LObj: IControl;
  LImage: TImage;
  LImageMerkez: TPointF;
begin
  //Zoom için
  if EventInfo.GestureID = igiZoom then
  begin
    LObj := Self.ObjectAtPoint(ClientToScreen(EventInfo.Location));
    if LObj is TImage then
    begin
      if (not(TInteractiveGestureFlag.gfBegin in EventInfo.Flags)) and
        (not(TInteractiveGestureFlag.gfEnd in EventInfo.Flags)) then
      begin
        LImage := TImage(LObj.GetObject);
        LImageMerkez := LImage.Position.Point + PointF(LImage.Width / 2,
          LImage.Height / 2);
        LImage.Width := LImage.Width + (EventInfo.Distance - FEnSonMesafe);
        LImage.Height := LImage.Height + (EventInfo.Distance - FEnSonMesafe);
        LImage.Position.X := LImageMerkez.X - LImage.Width / 2;
        LImage.Position.Y := LImageMerkez.Y - LImage.Height / 2;
      end;
      FEnSonMesafe := EventInfo.Distance;
    end;
  end;

  //Pan için
  if EventInfo.GestureID = igiPan then
  begin
    LObj := Self.ObjectAtPoint(ClientToScreen(EventInfo.Location));
   if LObj is TImage then
    begin
      if not(TInteractiveGestureFlag.gfBegin in EventInfo.Flags) then
      begin
        LImage := TImage(LObj.GetObject);
        LImage.Position.X := LImage.Position.X + (EventInfo.Location.X - FEnSonKonum.X);
        LImage.Position.Y := LImage.Position.Y + (EventInfo.Location.Y - FEnSonKonum.Y);
      end;
        FEnSonKonum  := EventInfo.Location;
    end;
  end;

end;
İyi çalışmalar...
delphimaker
Üye
Mesajlar: 10
Kayıt: 04 May 2016 05:58

Re: Android Photo Resize sorunu (proje ektedir)

Mesaj gönderen delphimaker »

Fesih kardeşim çok çok teşekkür ederim. Elinize sağlık.

Oldukça iyi çalıştı kod.
Yalnız bunu scrollbox nesnesi içerisinde kullanınca sorun çıkıyor sanırım LObj=TScroolBox olunca bu sorunu da aşmış oluruz
Kullanıcı avatarı
fesiharslan
Üye
Mesajlar: 591
Kayıt: 20 Eki 2006 11:37
Konum: Erzurum
İletişim:

Re: Android Photo Resize sorunu (proje ektedir)

Mesaj gönderen fesiharslan »

delphimaker yazdı:Fesih kardeşim çok çok teşekkür ederim. Elinize sağlık.

Oldukça iyi çalıştı kod.
Yalnız bunu scrollbox nesnesi içerisinde kullanınca sorun çıkıyor sanırım LObj=TScroolBox olunca bu sorunu da aşmış oluruz
Rica ederim.
Pan işlemi için ScrollBox kullanacak iseniz;

1- Formun OnGesture olayından

Kod: Tümünü seç

    if EventInfo.GestureID = igiPan then
    begin
    ....
    ....
    ....
    end;
kod satırlarını tamamen silin. Bu kısımda yalnızca Zoom işlem kodu kalsın.
2- Daha sonra Form üzerine bir ScrollBox yerleştirin ve Align özelliğini Client yapın.
3- Daha önce forma eklemiş olduğunuz Image nesnesini, (Structure penceresinde) ScrollBox1 içerisine sürükleyip bırakın.
4- Image Align özelliğini Center yapın.
5- Daha sonra Pan işlemini test edin.

Yani kod yazmadan da ScrollBox ile Pan işlemleri yapılabiliyor.
İyi çalışmalar...
Kullanıcı avatarı
fesiharslan
Üye
Mesajlar: 591
Kayıt: 20 Eki 2006 11:37
Konum: Erzurum
İletişim:

Re: Android Photo Resize sorunu (proje ektedir)

Mesaj gönderen fesiharslan »

Merhaba;
Yukarıda anlattığım ScrollBox örneğine ait ekran görüntüsü.
Resim
delphimaker
Üye
Mesajlar: 10
Kayıt: 04 May 2016 05:58

Re: Android Photo Resize sorunu (proje ektedir)

Mesaj gönderen delphimaker »

Merhaba;
Çok teşekkür ederim kardeşim oldukça iyi oldu aklına yüreğine sağlık.
Cevapla