- 浏览: 11597 次
文章分类
最新评论
package com.example.testpop; import android.app.Activity; import android.os.Bundle; import android.view.Gravity; import android.view.Menu; import android.view.MenuItem; import android.view.MenuItem.OnMenuItemClickListener; import android.view.View; import android.webkit.WebView; import android.webkit.WebViewClient; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.GridView; import android.widget.LinearLayout.LayoutParams; import android.widget.PopupWindow; import android.widget.Toast; //主页面放一个WebView //ActionBar 上面一个menu,点击menu弹出PopWindow //PopWindow上面放GridView布局,ItemClick监听器, //判断点击的item ID执行不同方法 reload(),goback(),goforward() public class MainActivity extends Activity implements OnItemClickListener, OnMenuItemClickListener { private PopupWindow mPopupWindow; private View mViewiewMain; private WebView mWebView; private MenuItem mMenuItem; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mViewiewMain = getLayoutInflater() .inflate(R.layout.activity_main, null); // button = (Button) findViewById(R.id.button1); mWebView = (WebView) findViewById(R.id.webView1); mWebView.loadUrl("http://3gqq.qq.com/"); // WebView重定向 mWebView.setWebViewClient(new WebViewClient() { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; } }); mPopupWindow = new PopupWindow(this); // DisplayMetrics outMetrics = new DisplayMetrics(); // getWindowManager().getDefaultDisplay().getMetrics(outMetrics); // popupWindow.setWidth(outMetrics.widthPixels / 5 * 3); // popupWindow.setHeight(outMetrics.heightPixels / 5 * 3); // 代码设置PopWindow的宽和高 mPopupWindow.setWidth(LayoutParams.MATCH_PARENT); mPopupWindow.setHeight(LayoutParams.WRAP_CONTENT); // PopWindow的布局 View view = getLayoutInflater().inflate(R.layout.window, null); GridView gridView = (GridView) view.findViewById(R.id.gridView1); gridView.setAdapter(new GridViewAdapter(this)); gridView.setOnItemClickListener(this); mPopupWindow.setContentView(view); // mPopupWindow 获取焦点 mPopupWindow.setFocusable(true); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.main, menu); // 找到菜单Menu并设置监听器 mMenuItem = menu.findItem(R.id.action_menu1); mMenuItem.setOnMenuItemClickListener(this); return true; } // // public void btn(View v) { // mPopupWindow.showAtLocation(mViewiewMain, Gravity.BOTTOM, 10, 0); // } @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { // Toast.makeText(this, position + "", Toast.LENGTH_SHORT).show(); switch (position) { case 0: // 刷新 mWebView.reload(); mPopupWindow.dismiss(); break; case 1: // 后退 if (mWebView.canGoBack()) { mWebView.goBack(); } else { Toast.makeText(this, "不能退了!!!", Toast.LENGTH_SHORT).show(); } mPopupWindow.dismiss(); break; case 2: // 前进 if (mWebView.canGoForward()) { mWebView.goForward(); } else { Toast.makeText(this, "不能进了!!!", Toast.LENGTH_SHORT).show(); } mPopupWindow.dismiss(); break; } } @Override public boolean onMenuItemClick(MenuItem item) { switch (item.getItemId()) { // 显示PopWindow // showAtLocation case R.id.action_menu1: mPopupWindow.showAtLocation(mWebView, Gravity.BOTTOM, 0, 0); break; } return false; } }
引用
GridView的适配器:
package com.example.testpop; import android.content.Context; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.GridView; import android.widget.ImageView; public class GridViewAdapter extends BaseAdapter { private Context context; private Integer[] images = { R.drawable.card_refresh, R.drawable.back, R.drawable.forward }; public GridViewAdapter(Context context) { super(); this.context = context; } @Override public int getCount() { return images.length; } @Override public Object getItem(int position) { return position; } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { ImageView imageView; if (convertView == null) { imageView = new ImageView(context); imageView.setPadding(8, 8, 8, 8); imageView.setLayoutParams(new GridView.LayoutParams( LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); } else { imageView = (ImageView) convertView; } imageView.setImageResource(images[position]); return imageView; } }
发表评论
-
FragmentTabhost记录
2014-05-18 16:13 819<android.support.v4.app.Frag ... -
SharedPreferences 保存数据
2014-05-09 20:32 684//public static final String ... -
通讯录工具类ContactsHelper
2014-05-06 19:53 1023import java.util.ArrayList; ... -
LruCache
2014-05-04 20:42 642import android.graphics.Bitma ... -
layout_gravity和gravity区别
2014-05-03 11:24 1054layout_gravity和gravity gravity该 ... -
FragmentTabHost QQ 选项卡
2014-05-02 18:35 1468import android.os.Bundle; impo ... -
ListView添加ViewPager
2014-05-02 15:39 2299引用 ListView添加ViewPager listVi ... -
ListView添加ViewPager
2014-05-02 14:35 0<div class="iteye-blog- ...
相关推荐
一个使用WebView显示网页的Android小demo,用于学习webview。
用于展示Android之WebView的简单使用方法,结合博客使用效果更好哟 http://blog.csdn.net/shiquanqq/article/details/50912392
一个WebView小示例DEMO,实现基本的功能,适合新手参考
webview socket 完整版的demo实现,可以支持使用
Android x5内核集成demo 解决webview在使用内核时跟h5混合调用时出现的白屏,加载缓慢,vue报错各种兼容问题。在x5内核加载失败时,会切换成系统本身的内核来加载h5内容。如果项目上架Google商店等海外市场运营的,...
webView详解 Demo 包含部分知识
一个最简单直白的webview 用法,网上好多进度条都不符合我想要的效果,改进后去掉系统自带标题栏,实现进度条,标题,及添加顶部布局,简单实用(含进度条,关闭,标题显示等)
android webview加载页面
简单的一个webview demo,代码不多具有下载功能可以学习看看
自定义了一个webview 实现了进度条显示、在同一个webview中打开多链接以及页面的前进后退
blog.csdn.net/shenji1993
android webview demo 。 用法参考:http://blog.csdn.net/zircon_1973/article/details/8067041
Android中webview的基础使用,其中包括androud——button和js的互相响应,基础学习使用
Android webview跳转url时,会有短暂的白屏,卡死问题,这样的用户体验感是极差的,这边代码展示了可以很好的解决此类问题的方法,光法博客没用,我们直接上来就上代码,一步教会,永远受益,下载完毕,希望大家踊跃...
QtWebView在线加载网页Demo,用于Qt Windows端在线加载地图
ios的webview的demo,包含ios调用js和js调用ios代码两个部分,非常好用,本人亲测,完全免费,能够直接运行,是非常好的学习例子
webview交互demo
资源文章地址 http://blog.csdn.net/wangtingshuai/article/details/8631835
Webview的简单使用介绍和总结;请使用eclipse打开;