我需要在webview中使用图片来缩放它

时间:2011-09-09 19:54:21

标签: android resources webview

我成功地在模拟器的sdcard中设置了apicture来模拟webview中图片的工作,但我不知道如何在最终的apk包中设置它。

图片名为map.png,并且设置为drawable和assets,但是我没有尝试多种方法将其加载到... loadUrl(...)

这是我的代码,我希望有人可以帮助我。

public class Map extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.map);
        WebView myWebView = (WebView) findViewById(R.id.webMap);
        myWebView.getSettings().setJavaScriptEnabled(true);
        myWebView.getSettings().setBuiltInZoomControls(true);
        myWebView.setWebViewClient(new WebViewClient());
        myWebView.loadUrl("file://mnt/sdcard/map.png");

这是在资源模拟器中运行的新编辑代码,我必须在哪里放置新代码才能使包中的任何内容正常工作。

myWebView.setWebViewClient(new WebViewClient());
        myWebView.loadUrl("file:///android_asset/map.png");
        setContentView(myWebView);

请使用我的图片文件名,否则我不明白。

1 个答案:

答案 0 :(得分:1)

再次。我是......

我有一个基本的方法..只需将您的文件放在Assets目录中,并在运行时将这些文件复制到内部存储或外部存储(SD卡)中。

喜欢,

    try {
     // Open your local file as the input stream
     InputStream myInput = myContext.getAssets().open("image.png");

     // Path to the just created empty file
   String outFileName = "/data/data/<Package Name>/files/newImage.png";

     OutputStream myOutput = new FileOutputStream(outFileName);

     // transfer bytes from the inputfile to the outputfile
       byte[] buffer = new byte[1024];
    int length;
    while ((length = myInput.read(buffer)) > 0) 
              {
    myOutput.write(buffer, 0, length);
    }

    // Close the streams
    myOutput.flush();
    myOutput.close();
    myInput.close();

    }
             catch (Exception e) 
             {

    Log.e("error", e.toString());

    }