Change Framelayout Background Image By URL

can url be used to set background for framelayout ?

Example: I want to use this URL as this as the background of the framelayout .

what I really want to achieve is that when my activity loads, it will extract the image from my domain and use it as the background image of the framelayout. I was able to do this, but I used the image and button.

below is the code I'm using:

 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(); } } } 

, and here are my XML codes:

 <?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" /> 

+3
source share
4 answers

Something interesting, (I never try this, but it should work)

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

Convert the image url to Drawable using

 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; } 

Try this and let me know what will happen.

+4
source
0
source

here is the code you can get in the bitmap from the url

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

and using this you can convert a bitmap to drawable ...

and after you get the option of drawing in a layout like

 framelyt.setBackgroundDrawable(d); 
0
source
 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); } } 
0
source

All Articles