Вопрос
Я использую Android 2.2. Я пытаюсь выполнить следующий код, чтобы запустить:
Uri uri=Uri.parse("http://bluediamondring-s.com/wp-content/uploads/2010/08/gold-ring.jpg");
File f=new File(uri.getPath());
image.setImageURI(Uri.parse(f.toString()));
image.invalidate();
Но изображение не видно на моем экране Android.
предложить что-то.
С уважением, Рахул
Решение
позвольте мне дать вам метод Utils
public class AsyncUploadImage extends AsyncTask<Object, Object, Object> {
private static final String TAG = "AsyncUploadImage ";
ImageView iv;
private HttpURLConnection connection;
private InputStream is;
private Bitmap bitmap;
public AsyncUploadImage(ImageView mImageView) {
iv = mImageView;
}
@Override
protected Object doInBackground(Object... params) {
URL url;
try {
url = new URL((String) params[0]);
connection = (HttpURLConnection) url.openConnection();
connection.setDoInput(true);
connection.connect();
is = connection.getInputStream();
bitmap = BitmapFactory.decodeStream(is);
is.close();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (is != null) {
is.close();
}
if (connection != null) {
connection.disconnect();
}
} catch (IOException e) {
e.printStackTrace();
}
}
return bitmap;
}
@Override
protected void onPostExecute(Object result) {
super.onPostExecute(result);
if (null != result) {
iv.setImageBitmap((Bitmap) result);
Log.i(TAG, "image download ok!!!");
}else {
iv.setBackgroundResource(R.drawable.shuben1);
Log.i(TAG, "image download false!!!");
}
}
}
Когда адаптер для использования
так
new AsyncUploadImage(itemIcon).execute("http://temp/file/book/images/1325310017.jpg");
//http://temp/file/book/images/1325310017.jpg -> (это ваш URL изображения ..)
Другие советы
Вы не можете получить доступ к изображению через HTPP подобное. Вам необходимо сначала загрузить свое изображение в файл, поток или переменную.
Из этой темы: Кэширование изображений Android
Я использовал пример с кешем и приведя растровое изображение:
URL url = new URL(strUrl);
URLConnection connection = url.openConnection();
connection.setUseCaches(true);
Object response = connection.getContent();
if (result instanceof Bitmap) {
Bitmap bitmap = (Bitmap)response;
}
Я использовал решение, приведенное здесь:
http://asantoso.wordpress.com/2008/03/07/download-and-view-image-from-the-web/
С уважением, Рахул
Не связан с StackOverflow