17/10/11 10:54
Dyango
ciao ragazzi come posso ridimensionare un immagine a tutto schermo conoscendo il link dell immagine?
aaa
17/10/11 13:20
TheKaneB
semplicemente crea una ImageView e settala a tutto schermo nella tua Activity con
ImageView image = new ImageView(this);
setContentView(image);
image.setImageURI( Uri.parse("
example.com/… );
Se l'immagine risulta stretchata, puoi giocare con le opzioni del metodo setScaleType(), ad esempio impostando
image.setScaleType(ScaleType.CENTER_CROP);
che ingrandisce l'immagine tagliando i bordi per centrarla.
Comunque sulle reference di ImageView trovi tutto quello che ti serve
developer.android.com/reference/android/widget/…
PS: Il codice che ho scritto è solo un esempio poco ottimizzato. La cosa migliore sarebbe passare il puntatore alla ImageView ad un AsyncTask e caricare l'immagine in background, altrimenti blocchi il thread della UI finchè il download ed il decoding dell'immagine non sono completi, il chè potrebbe rallentare di qualche secondo il caricamento della Activity, o addirittura potrebbe far crashare l'applicazione in caso di problemi di rete.
Ultima modifica effettuata da TheKaneB 17/10/11 13:25
aaa
18/10/11 14:24
Dyango
grazie per la risposta ho provato inizialmente a usare la imageview come da te descritto ma compare sullo schermo vuota senza nessuna immagine il codeci è il seguente:
import android.app.Activity;
import android.net.Uri;
import android.os.Bundle;
import android.widget.ImageView;
import android.widget.ImageView.ScaleType;
public class Prova4Activity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//image = (ImageView) findViewById (R.id.image);
ImageView image = new ImageView(this);
setContentView(image);
image.setImageURI( Uri.parse("http://www.televideo.rai.it/televideo/pub/tt4web/Nazionale/16_9_page-103.png") );
image.setScaleType(ScaleType.FIT_XY);
}
}
ovviamente nel manifest ho inserito i permessi per accedere ad internet
Ultima modifica effettuata da Dyango 18/10/11 14:28
aaa
18/10/11 15:17
TheKaneB
il setContentView lo devi fare una volta sola, e poi manca la dichiarazione del layout.
dovrebbe essere una cosa tipo:
image.setLayoutParams(new ImageView.LayoutParams(MATCH_PARENT, MATCH_PARENT));
aaa
18/10/11 19:56
TheKaneB
Lo stai testando sull'emulatore o su device?
Cosa dicono i log?
EDIT: prova a togliere il weightSum, oppure ad impostare il layout_weight dell'imageview a "1". Non ricordo, infatti, se di default il peso dei figli sia impostato a 1.0 oppure a 0.0. Nel secondo caso avresti una ImageView grande 0pixel in entrambe le direzioni.
Ultima modifica effettuata da TheKaneB 18/10/11 20:00
aaa