Autore Topic: Zoom di un'Immagine in una View  (Letto 1027 volte)

Offline dr_stein

  • Nuovo arrivato
  • *
  • Post: 8
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Htc One S
  • Sistema operativo:
    Windows 7
Zoom di un'Immagine in una View
« il: 20 Novembre 2012, 21:03:15 CET »
0
Ciao a tutti,
ultimamente stavo smanettando un po con il pinch to zoom di un'immagine presente in un FrameLayout.
Ho provato a seguire questa guida:

http://android-developers.blogspot.it/2010/06/making-sense-of-multitouch.html

in cui viene definita una nuova View con un attributo di tipo Drawable (costruito a partire da un valore numerico presente in R) che viene definito nel costruttore e che fa riferimento a all'immagine che vorrò zoommare e spostare.

ora, se io voglio cambiare il valore di questo attributo a runtime con, ad esempio, il riferimento ad un'immagine presa dalla fotocamera (cioè un oggetto di tipo Uri), non posso farlo e leggendo il codice dell'esempio nel link non riesco a trovare nessuna funzione che me lo consenta.

Qualcuno ha qualche soluzione? è un po di tempo che ci sto sbattendo la testa...

grazie in anticipo!

Offline DarnellNajanReed

  • Utente normale
  • ***
  • Post: 359
  • Respect: +49
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    LG Optimus One, Acer Iconia A500/501, Asus Transformer Prime, Galaxy ACE, Galaxy S Plus, Galaxy S Advance P, Galaxy Tab 2 7.0, Google Nexus 7
  • Play Store ID:
    Luigi Notaro
  • Sistema operativo:
    OS X 10.8.3
Re:Zoom di un'Immagine in una View
« Risposta #1 il: 21 Novembre 2012, 00:05:44 CET »
0
Ho dato solo un'occhiata veloce al link, ma da quel che ho visto lui manipola una drawable che, nell'esempio, viene hardcodata nel costruttore e recuperata dalle risorse. Immagino quindi che ti basti recuperare l'immagine che ti interessa come drawable e darla in pasto alla classe, modificandone il costruttore o aggiungendo un metodo ad hoc.

Offline dr_stein

  • Nuovo arrivato
  • *
  • Post: 8
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Htc One S
  • Sistema operativo:
    Windows 7
Re:Zoom di un'Immagine in una View
« Risposta #2 il: 21 Novembre 2012, 18:12:32 CET »
0
ok grazie, quindi ora la domanda diventa:
Come faccio ad ottenere un Drawable da un'immagine nella galleria?

normalmente nell'OnClick del pulsante apposito ho:

Codice (Java): [Seleziona]
Intent pickPhoto = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(pickPhoto , 1);

che mi fa vedere la gallery mentre nel metodo onActivityResult ho:

Codice (Java): [Seleziona]
Uri selectedImage = imageReturnedIntent.getData();
img.setImageURI(selectedImage);

dove img è una ImageView a cui viene assegnata l'Uri dell'immagine selezionata nella galleria.
Come faccio a trasformare la variabile selectedImage di tipo Uri in un oggetto di tipo Drawable da passare alla nuova View?

ps. Ho provato con:

Codice (Java): [Seleziona]
Drawable d =Drawable.createFromPath(selectedImage.getPath());
ma non funza...

graziee

Offline dr_stein

  • Nuovo arrivato
  • *
  • Post: 8
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Htc One S
  • Sistema operativo:
    Windows 7
Re:Zoom di un'Immagine in una View
« Risposta #3 il: 28 Novembre 2012, 16:41:35 CET »
0
UP!

Offline Sakazaki

  • Utente normale
  • ***
  • Post: 396
  • Respect: +74
    • Mostra profilo
  • Dispositivo Android:
    Sony xperia Z
  • Play Store ID:
    Saka Labs
  • Sistema operativo:
    Windows 8
Re:Zoom di un'Immagine in una View
« Risposta #4 il: 28 Novembre 2012, 16:59:44 CET »
0
Al volo mi viene in mente qualcosa del tipo:
Codice (Java): [Seleziona]
Bitmap bitmapImage = BitmapFactory.decodeFile(selectedImage.getPath());
Drawable d = new BitmapDrawable(bitmapImage);

Ma non assicuro perché non ho provato...

Offline dr_stein

  • Nuovo arrivato
  • *
  • Post: 8
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Htc One S
  • Sistema operativo:
    Windows 7
Re:Zoom di un'Immagine in una View
« Risposta #5 il: 28 Novembre 2012, 17:29:48 CET »
0
mm no non funziona.. peccato!
magari sbaglio qualcos'altro io..