我成功地在模拟器的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);
请使用我的图片文件名,否则我不明白。
答案 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());
}