Я пытаюсь с этим кодом, и он не работает.
Как я могу скачать эту картинку и показать ее.
мой код Java
private ImageView iv;
private Bitmap bitmap;@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_showprofile);
iv = (ImageView) findViewById(R.id.virus);
bitmap = getBitmapFromURL("http://getbloodbd.org/image.php?no=4");
iv.setImageBitmap(bitmap);}
public Bitmap getBitmapFromURL(String src) {
try {
URL url = new URL(src);
HttpURLConnection connection = (HttpURLConnection) url
.openConnection();
connection.setDoInput(true);
connection.connect();
InputStream input = connection.getInputStream();
Bitmap myBitmap = BitmapFactory.decodeStream(input);
return myBitmap;
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
return null;
}
}
и мой код XML
<ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"app:layout_behavior="@string/appbar_scrolling_view_behavior"tools:context="org.getbloodbd.getbloodbd.ShowprofileActivity"tools:showIn="@layout/app_bar_showprofile">
<RelativeLayout
android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical">
<ImageView
android:id="@+id/virus"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_alignParentEnd="true"android:layout_alignParentStart="true" />
</RelativeLayout>
и мой PHP-код и в методе веб-просмотра он работает нормально, но просмотр изображений не работает, но мне нужен метод просмотра изображений.
<?php include 'config.php';header("Content-type: image/gif" );$no=$_GET['no']; $dn = mysql_query('select image from images where no="'.$no.'"'); $dnn = mysql_fetch_array($dn); $data = $dnn['image'];echo base64_decode($data);?>
Как это решить?
Не нужно делать код для загрузки изображения.
Существует знаменитая библиотека для загрузки изображений для приложения Android, Picasso позаботится о повторных вызовах, а также сохранит изображение в кеше приложения. Таким образом, одно и то же изображение не загружается каждый раз.
Зависимость от Пикассо есть
compile 'com.squareup.picasso:picasso:2.5.2'
Picasso.with(context).load(your_image_url).into(imageView);
Вы можете загрузить изображение с URL, как показано ниже
URL url = new URL("image full path");
Bitmap bmp = BitmapFactory.decodeStream(url.openConnection().getInputStream());
imageView.setImageBitmap(bmp);
другой способ загрузить изображение
private Bitmap bmp;
new AsyncTask<Void, Void, Void>() {
@Override
protected Void doInBackground(Void... params) {
try {
InputStream in = new URL(IMAGE_URL).openStream();
bmp = BitmapFactory.decodeStream(in);
} catch (Exception e) {
// log error
}
return null;
}
@Override
protected void onPostExecute(Void result) {
if (bmp != null)
imageView.setImageBitmap(bmp);
}
}.execute();
пожалуйста ссылка Вот.
Пожалуйста, попробуйте
Перейдите по этой ссылке Кликните сюда.
Убедитесь, что в вашем AndroidManifest.xml установлены следующие разрешения для доступа к Интернету.
<uses-permission android:name="android.permission.INTERNET" />
Вы должны использовать библиотеку Glide: https://github.com/bumptech/glide
Импортировать
compile 'com.github.bumptech.glide:glide:4.1.1'
annotationProcessor 'com.github.bumptech.glide:compiler:4.1.1'
Использование:
Glide.with(this).load("http://getbloodbd.org/image.php?no=4").into(iv);
Или, если вы хотите получить Bitmap:
Glide.with(this).asBitmap().load("http://getbloodbd.org/image.php?no=4").listener(new RequestListener<Bitmap>() {
@Override
public boolean onLoadFailed(@Nullable GlideException e, Object model, Target<Bitmap> target, boolean isFirstResource) {
return false;
}
@Override
public boolean onResourceReady(Bitmap resource, Object model, Target<Bitmap> target, DataSource dataSource, boolean isFirstResource) {
iv.setImageBitmap(resource);
return false;
}
});
Йо может использовать Пикассо или же скольжение для получения изображения с сервера и загрузки в ImageView с большим количеством опций.
Образец для Пикассо
Picasso.with(context)
.load(url)
.centerCrop()
.placeholder(R.drawable.user_placeholder)
.error(R.drawable.user_placeholder_error)
.into(imageView);
Образец для скольжения
GlideApp
.with(context)
.load(url)
.centerCrop()
.placeholder(R.drawable.loading_spinner)
.into(imageView);
не забудьте добавить интернет-разрешение в файл AndroidManifest.xml.
<uses-permission android:name="android.permission.INTERNET" />