Android jpg动画

时间:2011-11-17 05:32:54

标签: android

我想从网站下载10张JPG图片。

以间隔>>拍摄的图片。这没问题

  1. 如何将照片保存在一系列照片中。
  2. 我如何将它们显示为动态图片(类似电影)。
  3. 在Android上使用什么组件(imageView,animator)?
  4. 我如何为组件设置动画?
  5. 非常感谢任何具体的例子。

2 个答案:

答案 0 :(得分:1)

您可能希望在ImageView中使用AnimationDrawable

使用addFrame(Drawable frame, int duration)方法添加框架,然后使用start()启动动画。

您可以使用许多不同的方法下载和存储图像(可能是外部存储或数据库)。

答案 1 :(得分:0)

我有一个这样的例子,这里我从网站下载三个图像然后存储在路径“/ mnt / sdcard / ..”。如果你想在动画中显示这个,那么我认为你可以使用鳍状肢然后动态添加这个图像并使用异步任务你可以翻转下一个图像。

import java.io.BufferedInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URL;
import java.net.URLConnection;
import android.app.Activity;
import android.app.ProgressDialog;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;

public class TestActivity extends Activity {
    /** Called when the activity is first created. */
    Button btn;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        btn=(Button)findViewById(R.id.startBtn);
        final String url1 = "http://farm1.static.flickr.com/114/298125983_0e4bf66782_b.jpg";
        final String url2 = "http://farm1.static.flickr.com/114/298125983_0e4bf66782_b.jpg";
        final String url3 = "http://farm1.static.flickr.com/114/298125983_0e4bf66782_b.jpg";
        btn.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                new AsyncDownload().execute(url1,url2,url3);
            }
        });
    }

    //------------------------------Class AsyncDownload----------------------------------

    public class AsyncDownload extends AsyncTask<String, String, String>
    {
        ProgressDialog dialog;

        @Override
        protected void onPostExecute(String result) {
            // TODO Auto-generated method stub
            super.onPostExecute(result);    
            dialog.dismiss();
            Toast.makeText(TestActivity.this,"Downloading complate successfully",2).show();
        }

        @Override
        protected void onPreExecute() {
            // TODO Auto-generated method stub
            super.onPreExecute();
            dialog=new ProgressDialog(TestActivity.this);
            dialog.setMessage("Downloading file..");
            dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
            dialog.setMax(100);
            dialog.show();
        }

        @Override
        protected void onProgressUpdate(String... values) {
            // TODO Auto-generated method stub
            super.onProgressUpdate(values);
            dialog.setProgress(Integer.parseInt(values[0]));
        }

        @Override
        protected String doInBackground(String... aurl) {
            int count;
            int lenghtOfFile=0;
            long total = 0;
            try {
                for(int i=0;i<aurl.length;i++)
                {
                    URL url = new URL(aurl[i]);
                    URLConnection conexion = url.openConnection();
                    conexion.connect();
                    lenghtOfFile =lenghtOfFile+conexion.getContentLength();
                }
                for(int i=0;i<aurl.length;i++)
                {
                    URL url = new URL(aurl[i]);
                    URLConnection conexion = url.openConnection();
                    conexion.connect();
                    InputStream input = new BufferedInputStream(url.openStream());
                    OutputStream output = new FileOutputStream("/mnt/sdcard/img"+i+".jpg");

                    byte data[] = new byte[1024];               

                    while ((count = input.read(data)) != -1) {
                        total += count;
                        publishProgress(""+(int)((total*100)/lenghtOfFile));
                        output.write(data, 0, count);
                    }

                    output.flush();
                    output.close();
                    input.close();
                }
            } catch (Exception e) {
                e.getMessage();

            }
            return null;
        }

    }

}