在Android中,以下最简单的方法是什么:
我正在尝试在ImageView中显示来自网址的图片,我尝试了基于http://developer.android.com/reference/android/widget/ImageView.html#setImageURI(android.net.Uri)的方法,但它似乎无法运行......我已经崩溃了应用程序。< / p>
Pics.java
import android.app.Activity;
import android.net.Uri;
import android.os.Bundle;
import android.widget.ImageView;
public class Pics extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.pics);
ImageView imageView = (ImageView) findViewById(R.id.ImageView1);
Uri imgUri = Uri.parse("http://www.remoteServer.com/img/disconnect.png");
imageView.setImageURI(null);
imageView.setImageURI(imgUri);
}
}
的AndroidManifest.xml
<activity
android:name=".Pics"
android:label="test" >
</activity>
Pics.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<imageview
android:id="@+id/ImageView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
</imageview>
</LinearLayout>
答案 0 :(得分:1)
我认为最好的方法是异步。
我通常在页面加载时启动进度指示器,然后触发异步进程。
在页面加载
new DownloadImageTask((ImageView)findViewById(R.id.QrCodeImageView)).execute("https://chart.googleapis.com/chart?cht=qr&chs=150x90&chl=HelloWorld");
异步流程
class DownloadImageTask extends AsyncTask<String, Void, Bitmap> {
ImageView bmImage;
public DownloadImageTask(ImageView bmImage) {
this.bmImage = bmImage;
}
protected Bitmap doInBackground(String... urls) {
String urldisplay = urls[0];
Bitmap mIcon11 = null;
try {
InputStream in = new java.net.URL(urldisplay).openStream();
mIcon11 = BitmapFactory.decodeStream(in);
ProgressBarQrCode.setVisibility(View.GONE);
} catch (Exception e) {
Log.e("Error", e.getMessage());
e.printStackTrace();
}
return mIcon11;
}
protected void onPostExecute(Bitmap result) {
bmImage.setImageBitmap(result);
}
}
我希望这有助于你
答案 1 :(得分:1)
如果您需要在应用中缓存这些图片,也可以尝试使用此功能。
答案 2 :(得分:0)
你的错误是什么?
好吧,我为名为picasso的图像使用了lib。
您可以使用一行代码将视频添加到视图中:
Picasso.with(context).load("http://i.imgur.com/DvpvklR.png").into(imageView);
如果您在列表中使用图像,可能需要创建一个拇指来使用更少的内存:
Picasso.with(context).load("http://i.imgur.com/DvpvklR.png").fit().centerCrop().into(imageView);
答案 3 :(得分:0)