public class LoadImageActivity extends Activity {
ImageView image_view;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
image_view = (ImageView)findViewById(R.id.imageview);
me m1=new me();
m1.execute("http://wallbase1.org/thumbs/rozne/thumb-499842.jpg");
me m2=new me();
m2.execute( "http://wallbase1.org/thumbs/rozne/thumb-637449.jpg");
me m3=new me();
m3.execute( "http://wallbase1.org/thumbs/rozne/thumb-2509834.jpg");
me m4=new me();
m4.execute( "http://wallbase1.org/thumbs/rozne/thumb-2501884.jpg");
me m5=new me();
m5.execute( "http://wallbase1.org/thumbs/rozne/thumb-2514440.jpg");
};
class me extends AsyncTask<String, Integer, Bitmap> {
Bitmap b1;
// private MainActivity m1;
protected Bitmap doInBackground(String...params) {
// TODO Auto-generated method stub
try {
/* Open a new URL and get the InputStream to load data from it. */
URL aURL = new URL(params[0]);
URLConnection conn = aURL.openConnection();
conn.connect();
InputStream is = conn.getInputStream();
/* Buffered is always good for a performance plus. */
BufferedInputStream bis = new BufferedInputStream(is);
/* Decode url-data to a bitmap. */
Bitmap bm = BitmapFactory.decodeStream(bis);
b1=bm;
bis.close();
is.close();
} catch (IOException e)
{
Log.e("DEBUGTAG", "Remote Image Exception", e);
}
return null;
}
@Override
protected void onPostExecute(Bitmap result) {
// TODO Auto-generated method stub
super.onPostExecute(result);
image_view.setImageBitmap(b1);
Animation rotation = AnimationUtils.loadAnimation(LoadImageActivity.this, R.anim.rotate);
image_view.startAnimation(rotation);
}
}}
我试图通过将其解码为位图来显示来自互联网的图像,我想显示来自多个网址的多个图像。有没有更好的方法来实现它?
答案 0 :(得分:1)
下载的持续时间取决于很多不同的东西。您当前生成了5个AsyncTasks,并且无法保证交付/执行的顺序与您生成它们的顺序相同。很可能第五张图片可能是您收到的第一张图片,这会导致完全错误的订单。因此,您应首先下载所有图像,可能只需一个AsyncTask。之后如果成功,你应该开始动画并在图像之间切换。
答案 1 :(得分:0)
有几种更好的方法可以做到这一点,而且所有方法都比你的代码复杂得多。但你确实有一个良好的开端。
此视频表单Google I / O有一些很好的图像技术,请在4:40左右查看https://www.youtube.com/watch?v=gbQb1PVjfqM
它需要不同的时间,因为它们是不同的图像,可能有不同的尺寸。
请发布您的XML R.anim.rotate
代码,以便有人可以尝试检查动画无效的原因。