I have an image on my website, that I want to set on my ImageView. Do to that I needed to use an asynch task. I'm doing it like below. But
new getThumbnail().execute(stringThumbnail);
is throwing me the error getThumbnail cannot be resolved to a type
. What am I doing wrong in here?
final ImageView thumbnail = (ImageView) findViewById(R.id.btnThumbnail);
String stringThumbnail = "myImage.jpg";
new getThumbnail().execute(stringThumbnail);
class getThumbnail extends AsyncTask<String, Void, Void> {
protected Void doInBackground(String... data) {
String thumb = data[0];
try {
Bitmap bitmap = BitmapFactory.decodeStream((InputStream)new URL("http://mySite.com/images/" + thumb).getContent());
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
protected void onPostExecute(Bitmap img) {
// TODO: check this.exception
// TODO: do something with the feed
thumbnail.setImageBitmap(img);
}
}
The problem is in async task use it like this
public class MainActivity extends Activity {
private ImageView mThumbnail;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mThumbnail = (ImageView) findViewById(R.id.btnThumbnail);
String stringThumbnail = "myImage.jpg";
new getThumbnail().execute(stringThumbnail);
}
class getThumbnail extends AsyncTask<String, Void, Bitmap> {
protected Bitmap doInBackground(String... data) {
String thumb = data[0];
Bitmap bitmap = null;
try {
Log.d("TEST", "do in background");
bitmap = BitmapFactory
.decodeStream((InputStream) new URL(
"http://mySite.com/images/" + thumb)
.getContent());
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return bitmap;
}
protected void onPostExecute(Bitmap img) {
Log.d("TEST", "post execute");
mThumbnail.setImageBitmap(img);
}
}
}
also make sure that btnThumbnail is a imageView. Prefix btn is confusing and also declare the permission
<uses-permission android:name="android.permission.INTERNET"/>
in the manifest.xml