Aquí va un sencillo programa donde se utiliza el widget ImageView y HttpURLConnection para mostrar imágenes de la web en nuestro dispositivo celular. La aplicación solicita ingresar el nombre del usuario y el URL de una imagen en el internet y luego de pulsar el botón nos muestra 2 imágenes, una cuyo URL se encuentra grabado en el código y otra imagen que es la solicitada por el usuario.
el código es el siguiente:
XML:
android:id="@+id/widget1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
xmlns:android="http://schemas.android.com/apk/res/android"
>
android:id="@+id/widget2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
android:id="@+id/nombre_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Nombre: "
>
android:id="@+id/nombre_txt"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="18sp"
>
android:id="@+id/widget3"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
>
android:id="@+id/widget5"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
android:id="@+id/url_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=" URL: "
>
android:id="@+id/url_txt"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="18sp"
android:text="http://"
>
android:id="@+id/mostrar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Mostrar Imagen"
>
android:id="@+id/widget4"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
>
android:id="@+id/nombre"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="_"
android:layout_gravity="center_horizontal"
>
android:id="@+id/widget5"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
>
android:id="@+id/imagen"
android:layout_width="120px"
android:layout_height="120px"
android:layout_gravity="center_horizontal"
>
android:id="@+id/imagen2"
android:layout_width="120px"
android:layout_height="120px"
android:layout_gravity="center_horizontal"
>
Código en java:
public class Imagenes2 extends Activity {
ImageView imagen; //variables que almacenan las imagenes
ImageView imagen2; //que seran asociadas a la imagenes generadas en el XML
//URL de una imagen en la web
String imageUrl="http://vpn.webcindario.com/fotosgpweb1/VPN7.jpg";
String imageUrl2="";
TextView nombre;
EditText nombre_txt;
EditText url_txt;
Bitmap bmImg; //Aqui se almacena la imagen recibida
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.main);
//Aqui se asocian las variables en java con los widgets en el xml
Button boton= (Button)findViewById(R.id.mostrar);
nombre=(TextView) findViewById(R.id.nombre);
nombre_txt=(EditText) findViewById(R.id.nombre_txt);
url_txt=(EditText) findViewById(R.id.url_txt);
boton.setOnClickListener(getImgListener);
imagen = (ImageView)findViewById(R.id.imagen);
imagen2 = (ImageView)findViewById(R.id.imagen2);
}
View.OnClickListener getImgListener = new View.OnClickListener()
{
@Override
public void onClick(View view) {
// TODO Auto-generated method stub
//lectura del URL
imageUrl2=url_txt.getText().toString();
nombre.setText("Hola "+nombre_txt.getText()+"\n\nTu URL es: "+imageUrl2);
//LLamado a la función que carga la imagen,
// se pasa el parametro del URL
cargarImagen(imageUrl);
//Muestra la imagen en el dispositivo
imagen.setImageBitmap(bmImg);
cargarImagen(imageUrl2);
imagen2.setImageBitmap(bmImg);
}
};
void cargarImagen(String Url){
URL miUrl =null;
try {
miUrl= new URL(Url);
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
//Creando la conexión http
HttpURLConnection conn= (HttpURLConnection)miUrl.openConnection();
conn.setDoInput(true);
conn.connect();
//leyendo el stream de datos de la imagen
InputStream is = conn.getInputStream();
//reconstruyendo el stream de datos a una imagen
bmImg = BitmapFactory.decodeStream(is);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
No se olviden de darle permisos de internet a la aplicación, agreguen al archivo AndroidManifest.xml la siguiente línea:
Fuente: http://pablithiu-blog.blogspot.com/2010/01/importando-imagenes-en-android.html
0 comentarios:
Publicar un comentario
Deja un comentario....