Android 异步图像从服务器下载并将它们存储在数组中

发布于 2024-11-17 08:12:32 字数 1789 浏览 3 评论 0原文

这是我的问题:我正在从服务器异步下载图像并将它们组织在一个数组中,例如 Image[1] 相当于 Image1 我需要组织数组的原因是我试图拥有一个图像360 度旋转。因此,当我将图像下载到数组中时,它似乎没有正确完成工作。非常感谢任何建议。

public class tst extends Activity implements OnClickListener {
TextView t;
Button b1;
ImageView iV;
Bitmap bitmap = null;
Bitmap [] angles;
String stringAngle;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.test);
    angles = new Bitmap[13];
    b1 = (Button) findViewById(R.id.button1);
    b1.setOnClickListener(this);
    iV = (ImageView) findViewById(R.id.imageView1);

}

@Override
public void onClick(View v) {
    if(v.getId() == R.id.button1){
        //Toast.makeText(getApplicationContext(), "ghjh", Toast.LENGTH_SHORT).show();
        for(int i = 1 ; i<13 ; i++)
        {
            stringAngle = Integer.toString(i);
        new DownloadImageTask()
            .execute("http://www.sampleurl"
                    +stringAngle+".png");
        }
        iV.setImageBitmap(angles[7]);
    }
}

private class DownloadImageTask extends AsyncTask<String, Void, Bitmap> {
    protected Bitmap doInBackground(String... urls) {
        return loadImageFromNetwork(urls[0]);
    }

    protected void onPostExecute(Bitmap result) {
        // Do something with bitmap eg:
        for(int m = 1 ; m<13;m++)
        {
        angles[m] =(Bitmap) result;
        }

    }
}

private Bitmap loadImageFromNetwork(String url) {

    try {
        bitmap = BitmapFactory.decodeStream((InputStream) new URL(url)
                .getContent());

    } catch (Exception e) {
        e.printStackTrace();
    }
    return bitmap;
}

在这种情况

下 iV.setImageBitmap(angles[7]) 总是返回不同的结果。

Here is my issue: I am downloading Images from a server async and organize them in an array such as Image[1] would b the equivalent of Image1 the reason why I need the array to be organized is that I am trying to have an image rotating in 360 angle. So when I download the images into the array it seems that it's not doing the job correctly. Any advice is super greatly appreciated.

public class tst extends Activity implements OnClickListener {
TextView t;
Button b1;
ImageView iV;
Bitmap bitmap = null;
Bitmap [] angles;
String stringAngle;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.test);
    angles = new Bitmap[13];
    b1 = (Button) findViewById(R.id.button1);
    b1.setOnClickListener(this);
    iV = (ImageView) findViewById(R.id.imageView1);

}

@Override
public void onClick(View v) {
    if(v.getId() == R.id.button1){
        //Toast.makeText(getApplicationContext(), "ghjh", Toast.LENGTH_SHORT).show();
        for(int i = 1 ; i<13 ; i++)
        {
            stringAngle = Integer.toString(i);
        new DownloadImageTask()
            .execute("http://www.sampleurl"
                    +stringAngle+".png");
        }
        iV.setImageBitmap(angles[7]);
    }
}

private class DownloadImageTask extends AsyncTask<String, Void, Bitmap> {
    protected Bitmap doInBackground(String... urls) {
        return loadImageFromNetwork(urls[0]);
    }

    protected void onPostExecute(Bitmap result) {
        // Do something with bitmap eg:
        for(int m = 1 ; m<13;m++)
        {
        angles[m] =(Bitmap) result;
        }

    }
}

private Bitmap loadImageFromNetwork(String url) {

    try {
        bitmap = BitmapFactory.decodeStream((InputStream) new URL(url)
                .getContent());

    } catch (Exception e) {
        e.printStackTrace();
    }
    return bitmap;
}

}

in this case iV.setImageBitmap(angles[7]) always comes back with different results.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文