Android WebView:默认另存为上下文长按

时间:2012-01-29 11:54:41

标签: android image webview android-context

你好,我想说我是新手编程(我主要处理图形设计),我想设置一个应用程序,我在其中显示图像库,用户可以将图像保存到他们的设备。我正在使用WebView,因为它对我来说最简单,现在我使用html在应用程序中显示的图像很好。我希望用户能够长按调用默认浏览器“另存为”或“设置为壁纸”操作。

以下是我在java文件中的代码:

package com.wallpapergallery.wjd;

import android.os.Bundle;
import android.webkit.WebChromeClient;
import android.webkit.WebView;
import android.app.Activity;

public class WallpaperGallerybyWJDDesignsActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    WebView webview = (WebView)findViewById(R.id.webview);     
    webview.setWebChromeClient(new WebChromeClient());
    webview.getSettings().setJavaScriptEnabled(true);
    webview.loadUrl("file:///android_asset/www/index.html");

    }
}

当然然后打开索引页面,我在页面上放置了一个正常的png进行测试。在您回答之前我警告您,我对此非常新,所以解释了示例代码的帮助,以便我可以学习将不胜感激。

一旦完成,我的想法是使用HTML5库来显示我的壁纸,并允许用户保存/设置为壁纸。


更新1:我已经成功完成了长时间的工作并给了我一些非常令我兴奋的logcat信息 - 现在我需要做的就是让菜单像浏览器一样弹出显示“保存图像”“查看图像”“设置为墙纸” - 再次感谢任何帮助,请随时拿我的代码修复它,并教我如何你做到这一点,如果你让它工作> _<

新守则:

package com.wallpapergallery.wjd;

import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnLongClickListener;
import android.webkit.WebChromeClient;
import android.webkit.WebView;
import android.app.Activity;

public class WallpaperGallerybyWJDDesignsActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    WebView webview = (WebView)findViewById(R.id.webview);

    webview.setOnLongClickListener(listener);

    webview.setWebChromeClient(new WebChromeClient());
    webview.getSettings().setJavaScriptEnabled(true);
    webview.loadUrl("file:///android_asset/www/index.html");                        
}
private OnLongClickListener listener = new OnLongClickListener() {

    public boolean onLongClick(View v) {

       Log.i("test","worked");

       return true;

    }

 };

}

1 个答案:

答案 0 :(得分:1)

我相信这就是你所寻找的,android set image as contact icon/wallpaper,特别是Intent setAs = new Intent(Intent.ACTION_ATTACH_DATA); setAs.setType("image/jpg");部分。我不完全确定这是你想要的,但如果它不完全正确,它应该让你走上正确的轨道。