Question

I am a learner and have been working on a home visitor app to get image from a URL of the visitor. Using the following code, which I found online, I was able to load image by adding an intent before the screen and adding a button on the screen saying "See Visitor Image" but now I want that my image should load as soon as the app launches. What changes could I make to do that? Thanks for your help.

OnClickListener getImageBtnOnClick = new OnClickListener() {
    public void onClick(View view) {
        Context context = view.getContext();
        Editable ed = inputUrl.getText();
        Drawable image = ImageOperations(context,ed.toString(),"image.jpg");
        ImageView imgView = new ImageView(context);
        imgView = (ImageView)findViewById(R.id.image1);
        imgView.setImageDrawable(image);
    }
};

public void onCreate(Bundle icicle) {
    super.onCreate(icicle);
    setContentView(R.layout.main);
    inputUrl = ((EditText)findViewById(R.id.imageUrl));
    inputUrl.setSingleLine();
    inputUrl.setTextSize(11);
    Button getImageButton = (Button)findViewById(R.id.getImageButton);
    getImageButton.setOnClickListener(getImageBtnOnClick);

}   

private Drawable ImageOperations(Context ctx, String url, String saveFilename) {
    try {
        InputStream is = (InputStream) this.fetch(url);
        Drawable d = Drawable.createFromStream(is, "src");
        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;
}
Was it helpful?

Solution

You can make use of SmartImageView, it is a drop-in replacement for Android’s standard ImageView which additionally allows images to be loaded from URLs or the user’s contact address book. Images are cached to memory and to disk for super fast loading.

https://github.com/loopj/android-smart-image-view

Or on OnResume of ur activity start downloading the image form the url as u r doing now in the click listener of button in a separate thread to avoid blocking main UI thread. Once you completed the download you can update the image view using handler from the worker thread.

You can make use of async task also instead of creating your own thread and handler to update UI. for more infor about async task refer following link http://www.vogella.com/articles/AndroidPerformance/article.html

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top