2

我想显示一个启动画面,并在这个时候下载WebView. SplashView 是我以编程方式创建的资产的 gif

public class GIFView extends View {
private Movie mMovie;
private long mMoviestart;

public GIFView(Context context, InputStream stream) {
    super(context);        
    mMovie = Movie.decodeStream(stream); 
}
@Override 
protected void onDraw(Canvas canvas) { 
    canvas.drawColor(Color.TRANSPARENT); 
    super.onDraw(canvas); 
    final long now = SystemClock.uptimeMillis(); 
    if (mMoviestart == 0) { 
        mMoviestart = now; 
    } 
    final int relTime = (int)((now - mMoviestart) % mMovie.duration()); 
    mMovie.setTime(relTime); 
    mMovie.draw(canvas, 0, 0); 
    this.invalidate(); 
}
}

流在哪里

try {
        String path = this.getApplicationContext().getResources().getString(R.string.subpath) + 
                      "/vsplesk.gif";
        mStream = getAssets().open(path);
    } 
    catch (IOException e) {
        e.printStackTrace();
    }

我怎么能做到这一点?也许有人已经决定了同样的任务。提前致谢

4

1 回答 1

1

您可以尝试通过创建一个 asynctask 类来做到这一点

它会在后台运行,然后你告诉它在后台完成加载/下载后要做什么。

 private class DownloadFilesTask extends AsyncTask<URL, Integer, Long> {
     protected Long doInBackground(URL... urls) {
         int count = urls.length;
         long totalSize = 0;
         for (int i = 0; i < count; i++) {
             totalSize += Downloader.downloadFile(urls[i]);
             publishProgress((int) ((i / (float) count) * 100));
             // Escape early if cancel() is called
             if (isCancelled()) break;
         }
         return totalSize;
     }

     protected void onProgressUpdate(Integer... progress) {
         setProgressPercent(progress[0]);
     }

     protected void onPostExecute(Long result) {
         showDialog("Downloaded " + result + " bytes");
     }
 }

Asynctask - Android 开发者

于 2013-09-01T19:53:23.477 回答