una studio mover imagen elementos ejemplo diseño con como centrar cambiar botones boton amontonados android layout background-image framelayout

android - studio - cambiar la imagen de fondo de Framelayout a través de URL



framelayout android ejemplo (4)

Algo interesado, (nunca lo intenté pero debería funcionar)

FrameLayout fm = (FrameLayout)findViewById(R.id.FrameLayout01); Drawable drw = ImageOperations(this,url,filename) fm.setBackgroundDrawable(drw)

Convierta su url de imagen en Drawable usando

private Drawable ImageOperations(Context ctx, String url, String saveFilename) { try { InputStream is = (InputStream) this.fetch(url); Drawable d = Drawable.createFromStream(is, saveFilename); return d; } catch (MalformedURLException e) { e.printStackTrace(); return null; } catch (IOException e) { e.printStackTrace(); return null; } } public Object fetch(String address) throws MalformedURLException,IOException { URL url = new URL(address); Object content = url.getContent(); return content; }

Prueba esto y hazme saber lo que sucede ...

¿es posible usar una url para establecer el background de framelayout ?

Ejemplo: quiero usar la URL como esta como mi fondo de framelayout .

Lo que realmente quiero lograr es que cuando se cargue mi actividad, obtenga la imagen de mi dominio y la use como imagen de fondo de mi framelayout. Pude hacer esto pero utilicé una vista de imagen y un botón.

a continuación está el código que uso:

public class MyAppActivity extends Activity { ImageView imView; String imageUrl= "http://www.mydomain.com/resource/images/"; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Button bt3= (Button)findViewById(R.id.postbutton); bt3.setOnClickListener(getImgListener); } View.OnClickListener getImgListener = new View.OnClickListener() { public void onClick(View view) { downloadFile(imageUrl+"image"+".png"); Log.i("im url",imageUrl+"image"+".png"); } }; Bitmap bmImg; void downloadFile(String fileUrl){ URL myFileUrl =null; try { myFileUrl= new URL(fileUrl); } catch (MalformedURLException e) { // TODO Auto-generated catch block e.printStackTrace(); } try { HttpURLConnection conn= (HttpURLConnection)myFileUrl.openConnection(); conn.setDoInput(true); conn.connect(); InputStream is = conn.getInputStream(); bmImg = BitmapFactory.decodeStream(is); imView.setImageBitmap(bmImg); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }

y aquí están mis códigos XML:

<?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@drawable/rakistaradiobg" android:orientation="vertical" > <ImageView android:id="@+id/imageView1" android:layout_width="wrap_content" android:layout_height="98dp" android:layout_gravity="bottom|center" android:scaleType="fitXY" android:src="@drawable/btnbg" /> <Button android:id="@+id/postbutton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="50dp" android:text="Button" />


Puede usar WebView para mostrar el contenido del sitio web. También hay un maravilloso tutorial sobre el uso de WebView en el sitio web de desarrolladores de Android


aquí está el código por el que puedes obtener la imagen en mapa de bits desde la URL

Bitmap bitmap = BitmapFactory.decodeStream((InputStream)new URL(imageUrl).getContent());

y Usar esto puede convertir mapa de bits a dibujable ...

y después de obtener dibujable aplicar en el diseño como

framelyt.setBackgroundDrawable(d);


private RelativeLayout myRelativeLauout; myRelativeLauout = (RelativeLayout)findViewById(R.id.rlBg); new LoadBackground("http://www.tmonews.com/wp-content/uploads/2012/10/androidfigure.jpg", "androidfigure").execute(); private class LoadBackground extends AsyncTask<String, Void, Drawable> { private String imageUrl , imageName; public LoadBackground(String url, String file_name) { this.imageUrl = url; this.imageName = file_name; } @Override protected void onPreExecute() { super.onPreExecute(); } @Override protected Drawable doInBackground(String... urls) { try { InputStream is = (InputStream) this.fetch(this.imageUrl); Drawable d = Drawable.createFromStream(is, this.imageName); return d; } catch (MalformedURLException e) { e.printStackTrace(); return null; } catch (IOException e) { e.printStackTrace(); return null; } } private Object fetch(String address) throws MalformedURLException,IOException { URL url = new URL(address); Object content = url.getContent(); return content; } @Override protected void onPostExecute(Drawable result) { super.onPostExecute(result); myRelativeLauout.setBackgroundDrawable(result); } }