11.webview、shareSDK

布局:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical" >    <RelativeLayout        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:background="@drawable/title_red_bg" >        <ImageButton            android:id="@+id/btn_back"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:layout_centerVertical="true"            android:layout_marginLeft="5dp"            android:background="@null"            android:src="@drawable/back" />        <ImageButton            android:id="@+id/btn_share"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:layout_alignParentRight="true"            android:layout_centerVertical="true"            android:layout_marginRight="5dp"            android:background="@null"            android:src="@drawable/icon_share" />        <ImageButton            android:id="@+id/btn_size"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:layout_centerVertical="true"            android:layout_marginRight="5dp"            android:layout_toLeftOf="@id/btn_share"            android:background="@null"            android:src="@drawable/icon_textsize" />    </RelativeLayout>    <FrameLayout        android:layout_width="match_parent"        android:layout_height="0dp"        android:layout_weight="1" >        <WebView            android:id="@+id/wv_web"            android:layout_width="match_parent"            android:layout_height="match_parent" />        <ProgressBar            android:id="@+id/pb_progress"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:layout_gravity="center"            android:indeterminateDrawable="@drawable/custom_progress" />    </FrameLayout></LinearLayout>

2.新闻详情页

public class NewsDetailActivity extends Activity implements OnClickListener {	private WebView mWebView;	private ImageButton btnBack;//后退按钮	private ImageButton btnSize;//设置网页文本大小	private ImageButton btnShare;//分享	private ProgressBar pbProgress;//一进去没加载出内容的进度圈	@Override	protected void onCreate(Bundle savedInstanceState) {		super.onCreate(savedInstanceState);		requestWindowFeature(Window.FEATURE_NO_TITLE);		setContentView(R.layout.activity_news_detail);		mWebView = (WebView) findViewById(R.id.wv_web);		btnBack = (ImageButton) findViewById(R.id.btn_back);		btnSize = (ImageButton) findViewById(R.id.btn_size);		btnShare = (ImageButton) findViewById(R.id.btn_share);		btnBack.setOnClickListener(this);		btnSize.setOnClickListener(this);		btnShare.setOnClickListener(this);		pbProgress = (ProgressBar) findViewById(R.id.pb_progress);		String url = getIntent().getStringExtra("url");		WebSettings settings = mWebView.getSettings();//获取设置对象		settings.setJavaScriptEnabled(true);// 表示支持js,即网页的阅读全文		settings.setBuiltInZoomControls(true);// 显示放大缩小按钮		settings.setUseWideViewPort(true);// 支持双击缩放		mWebView.setWebViewClient(new WebViewClient() {			/**			 * 网页开始加载			 */			@Override			public void onPageStarted(WebView view, String url, Bitmap favicon) {				super.onPageStarted(view, url, favicon);				System.out.println("网页开始加载");				pbProgress.setVisibility(View.VISIBLE);			}			/**			 * 网页加载结束			 */			@Override			public void onPageFinished(WebView view, String url) {				super.onPageFinished(view, url);				System.out.println("网页开始结束");				pbProgress.setVisibility(View.GONE);			}			/**			 * 所有跳转的链接都会在此方法中回调			 */			@Override			public boolean shouldOverrideUrlLoading(WebView view, String url) {				// tel:110,在这里可以获取连接,可以做很多操作,比如获取了110,我们可以打电话,获取的URL和我们黄网数据库匹配了,可以拦截等				System.out.println("跳转url:" + url);				view.loadUrl(url);//自己的应用中打开网页,不会调到系统浏览器了				return true;				// return super.shouldOverrideUrlLoading(view, url);			}		});		// mWebView.goBack()//比如弄个上一页下一页的按钮执行这个方法		mWebView.setWebChromeClient(new WebChromeClient() {			/**			 * 进度发生变化			 */			@Override			public void onProgressChanged(WebView view, int newProgress) {				System.out.println("加载进度:" + newProgress);				super.onProgressChanged(view, newProgress);			}			/**			 * 获取网页标题			 */			@Override			public void onReceivedTitle(WebView view, String title) {				System.out.println("网页标题:" + title);//可以显示在顶部的textview上				super.onReceivedTitle(view, title);			}		});		mWebView.loadUrl(url);// 默认加载网页,可以随便写	}	@Override	public void onClick(View v) {		switch (v.getId()) {		case R.id.btn_back:			finish();//销毁activity,即显示出了上一个页面			break;		case R.id.btn_size:			showChooseDialog();			break;		case R.id.btn_share:			showShare();			break;		default:			break;		}	}	private int mCurrentChooseItem;// 记录当前选中的item, 点击确定前	private int mCurrentItem = 2;// 记录当前选中的item, 点击确定后,默认是标准字体,有个问题:在进来又变回了标准,可以保存起来	/**	 * 显示选择对话框	 */	private void showChooseDialog() {		AlertDialog.Builder builder = new AlertDialog.Builder(this);		String[] items = new String[] { "超大号字体", "大号字体", "正常字体", "小号字体",				"超小号字体" };		builder.setTitle("字体设置");		builder.setSingleChoiceItems(items, mCurrentItem,				new DialogInterface.OnClickListener() {					@Override					public void onClick(DialogInterface dialog, int which) {						System.out.println("选中:" + which);						mCurrentChooseItem = which;					}				});		builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {			@Override			public void onClick(DialogInterface dialog, int which) {				WebSettings settings = mWebView.getSettings();				switch (mCurrentChooseItem) {				case 0:					settings.setTextSize(TextSize.LARGEST);					break;				case 1:					settings.setTextSize(TextSize.LARGER);					break;				case 2:					settings.setTextSize(TextSize.NORMAL);					break;				case 3:					settings.setTextSize(TextSize.SMALLER);					break;				case 4:					settings.setTextSize(TextSize.SMALLEST);					break;				default:					break;				}				mCurrentItem = mCurrentChooseItem;			}		});		builder.setNegativeButton("取消", null);		builder.show();	}	/**	 * 分享, 注意在sdcard根目录放test.jpg,就是这个天气图片	 */	private void showShare() {		ShareSDK.initSDK(this);		OnekeyShare oks = new OnekeyShare();				oks.setTheme(OnekeyShareTheme.SKYBLUE);//设置天蓝色的主题				// 关闭sso授权		oks.disableSSOWhenAuthorize();		// 分享时Notification的图标和文字,不知道为什么这报错,还是不能写字		oks.setNotification(R.drawable.ic_launcher,				getString(R.string.app_name));		// title标题,印象笔记、邮箱、信息、微信、人人网和QQ空间使用		oks.setTitle(getString(R.string.share));		// titleUrl是标题的网络链接,仅在人人网和QQ空间使用		oks.setTitleUrl("http://sharesdk.cn");		// text是分享文本,所有平台都需要这个字段		oks.setText("我是分享文本");		// imagePath是图片的本地路径,Linked-In以外的平台都支持此参数		oks.setImagePath("/sdcard/test.jpg");// 确保SDcard下面存在此张图片		// url仅在微信(包括好友和朋友圈)中使用		oks.setUrl("http://sharesdk.cn");		// comment是我对这条分享的评论,仅在人人网和QQ空间使用		oks.setComment("我是测试评论文本");		// site是分享此内容的网站名称,仅在QQ空间使用		oks.setSite(getString(R.string.app_name));		// siteUrl是分享此内容的网站地址,仅在QQ空间使用		oks.setSiteUrl("http://sharesdk.cn");		// 启动分享GUI		oks.show(this);	}}
  • 导入的时候遇到了错误,我把工作空间改了成utf-8,但是有一个文件还是报错,于是把例子程序的这个文件拷进来就好了。后来发现运行的程序里的文字是乱码,后来找到了原因,因为我的工作空间默认是GBK,没有修改,所以改成utf-8不识别了。而人家的sdk却是u8。可以单击报错的文件单个修改。以后建工作空间的时候首先要改编码
  • 审核一般是2-3天或者一个礼拜
  <ShareSDK         AppKey = "62aa650a6c53"/> <!-- 修改成你在sharesdk后台注册的应用的appkey"-->        <!-- ShareByAppClient标识是否使用微博客户端分享,默认是false -->    <SinaWeibo        Id="1"        SortId="1"        AppKey="568898243"//每个应用都需要审核这个APIkey,能写来自。。。。        AppSecret="38a4f8204cc784f81f9f0daaf31e02e3"        RedirectUrl="http://www.sharesdk.cn"        ShareByAppClient="false"        Enable="true" />

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏androidBlog

RecycleView下拉刷新控件的封装(包括下拉刷新和加载更多 )

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/gdutxiaoxu/article/details/...

4321
来自专栏QQ音乐技术团队的专栏

Android动态布局入门及NinePatchChunk解密

摆脱XML布局文件 相信每一个Android开发者,在接触“Hello World”的时候,就形成了一个观念:Android UI布局是通过layout目录下...

5537
来自专栏androidBlog

自定义 Behavior - 仿新浪微博发现页的实现

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/gdutxiaoxu/article/de...

1392
来自专栏Android-薛之涛

ViewFlipper-仿淘宝垂直广告滚动

viewflipper的子布局item_viewflipper.xml,下面是效果图,自己写,不会没招。

9652
来自专栏Android干货园

Android源码解析--SwipeMenuListView仿QQ聊天左滑

版权声明:本文为博主原创文章,转载请标明出处。 https://blog.csdn.net/lyhhj/article/details/50...

1421
来自专栏向治洪

可拖拽gridview

在Android开发中,我们常常用到ListView和GridView,而有的时候系统的ListView,GridView并不能满足我们的需求,所以我们需要自己...

2995
来自专栏Flutter入门到实战

Android仿简书长按文章生成图片效果

使用简书APP的同学都知道,简书有这样一个功能:文章页长按内容时底部会出现一个 生成图片分享 的按钮,点击之后就可以将当前的文章生成一张长图片,这张图片可以保存...

3942
来自专栏Android机动车

Android Jetpack 之Navigation Architecture Component使用

activity中fragment默认为NavHostFragment,NavHostFragment通过navGraph与navigation导航编辑器进行关...

4253
来自专栏飞雪无情的博客

Android EditText使用详解-包含很多教程上看不到的功能演示

标题有点大,说是详解,其实就是对EditText的一些常用功能的介绍,包括密码框,电话框,空白提示文字等等的讲解,尽量的介绍详细一点,也就是所谓的详解了。。呵呵

6532
来自专栏项勇

笔记31 | 归纳总结Android的点击事件

2528

扫码关注云+社区

领取腾讯云代金券