android开发我的新浪微博客户端-用户授权页面UI篇(3.1)

上一篇讲了讲OAuth授权认证的事情,大概的介绍了OAuth的原理,并且完成了一个OAuth.java的类库,提供了几个OAuth认证必要的方法,本篇开始具体讲本项目的用户授权功能,用户授权页面是当用户第一次使用本软件的时候自动从载入页面跳转过来的显示的页面,涉及OAuth认证相关都是在上一篇的OAuth.java的类基础上开发。用户授权页面分为UI篇和功能篇两篇,本篇先来讲讲UI的实现,这次就不贴PS的效果图了直接贴实现后的功能截图如下:

 

      看上面的图,其实这个页面的UI实现不复杂,首先是背景部分的实现这个参考 android开发我的新浪微博客户端-载入页面UI篇(1.1),重点来讲讲这个半透明的弹出对话框窗口是如何实现的,首先新建名为AuthorizeActivity.java的Activity,并且在AndroidManifest.xml文件中添加这个Activity,这样这个Activity才能被使用,接下来为这个Activity新建名为authorize.xml的Layout,这个Layout很简单只负责logo小图标显示,背景部分和透明窗口都是有代码来实现,所以非常简单参考 android开发我的新浪微博客户端-载入页面UI篇(1.1)。

       完成Layout建立后在AuthorizeActivity的onCreate方法添加如下代码,设置authorize.xml为AuthorizeActivity的页面Layout:

      接下来是本文的重点部分,半透明弹窗用Dialog控件进行实现,首先为这个半透明弹窗新建一个名为dialog.xml的Layout,这个Layout主要是对4个元素进行布局,如图所示分别为i小图标信息提示中间文字开始按钮,首先用LinearLayout对i小图标信息提示进行水平布局,中间文字以一个TextView跟在下面,对于开始按钮是用RelativeLayout进行底部对齐显示。具体代码如下:

 代码

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
  
xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width
="wrap_content"
  android:layout_height
="wrap_content"
  android:orientation
="vertical"
  android:padding
="10dip">
  
<LinearLayout
  
android:layout_width="wrap_content"
  android:layout_height
="wrap_content"
  android:orientation
="horizontal">
  
<ImageView
  
android:layout_width="wrap_content"
  android:layout_height
="wrap_content"
  android:src
="@drawable/info_icon">
  
</ImageView>
  
<TextView
  
android:layout_width="wrap_content"
  android:layout_height
="wrap_content"
  android:text
="信息提示"
  android:textSize
="13px"
  android:textColor
="#219ac6"
  android:layout_marginLeft
="5dip">
  
</TextView>
  
</LinearLayout>
  
<TextView
  
android:id="@+id/text_info"
  android:layout_marginTop
="6px"
  android:layout_width
="200px"
  android:layout_height
="wrap_content"
  android:textColor
="#686767"
  android:textSize
="14px"
  android:text
="第一次使用需要输入您的新浪微博账号和密码进行登录授权">
  
</TextView>
  
<RelativeLayout
  
android:layout_width="fill_parent"
  android:layout_height
="40px">
      
<LinearLayout
      
android:layout_width="wrap_content"
      android:layout_height
="wrap_content"
      android:orientation
="horizontal"
      android:layout_centerHorizontal
="true"
      android:layout_alignParentBottom
="true">
          
<ImageButton
          
android:id="@+id/btn_start"
          android:layout_width
="80px"
          android:layout_height
="31px"
          android:src
="@drawable/btn_start_selector">
          
</ImageButton>
          
<ImageButton
          
android:id="@+id/btn_cancel"
          android:layout_width
="80px"
          android:layout_height
="31px"
          android:layout_marginLeft
="8px"
          android:src
="@drawable/btn_cancel_selector">
          
</ImageButton>
      
</LinearLayout>
  
</RelativeLayout>
 
</LinearLayout>

 

      完成了半透明弹窗的Layout定义接下来我们要做的就是为它写一个自定义样式来实现我们想要的显示效果,首先我们需准备一个圆角的半透明png图片名为dia_bg.png并且添加到drawable中,接下来再res/values文件夹新建名为 dialogStyle.xml的resources样式文件,具体代码如下:

 

这个样式文件的说明如下

parent="@android:style/Theme.Dialog" :在系统Dialog样式基础上,相当于继承系统样式

<item name="android:windowFrame">@null</item> :Dialog的windowFrame框为无

<item name="android:windowIsFloating">true</item>:是否浮现在activity之上

<item name="android:backgroundDimEnabled">false</item>: 背景是否模糊显示

     接下来写java代码把这个半透明弹窗显示出来,在AuthorizeActivity的onCreate方法添加如下代码:

 

    最后运行查看效果,到这里我们的任务已经完成了。请关注下一篇功能篇。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/297417.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于SharePoint革命性的大型企业协同门户产品

OpenShare——基于SharePoint革命性的大型企业协同门户产品&#xff0c;由光合信息技术&#xff08;上海&#xff09;有限公司研发&#xff0c;针对企业用户&#xff0c;目前可以通过其官网下载使用。OpenShare&#xff1a;打开SharePoint的全部潜能SharePoint是个非凡的产品&a…

SharePoint Foundation和SharePoint Server的区别

SharePoint Server 2010用来取代MOSS 2007&#xff0c;它有标准版和企业版两个版本&#xff0c;使用SQL Server数据库&#xff1b; 早期版本中的STS或WSS在2010中更名为SharePoint Foundation&#xff1b; 而SPS 2010包含了SharePoint Foundation和SharePoint Server。 SharePo…

还缺30万人!程序员2020年要过好日子了……

全世界只有3.14 % 的人关注了爆炸吧知识最近&#xff0c;程序员届有一个重大好消息&#xff0c;可能很多人还不知道&#xff0c;那就是&#xff1a;国内某些城市已经开始程序员人才补贴了&#xff01;对于人工智能公司的项目开发、人才引进、科技研发&#xff0c;最高按照国拨经…

iNeuOS工业互联网操作系统部署在华为欧拉(openEuler)国产系统

目 录1. 概述... 32. 创建虚拟机&安装华为欧拉&#xff08;openEuler&#xff09;系统... 42.1 创建新的虚拟机... 42.2 默认选择Wowrkstation 16.x. 52.3 选择稍后安装操作系统... 62.4 选择其他Liunx 4.x 64位.…

datatables 一列显示两个字段的数据_【tableau入门教程16】计算字段

有时数据表中的原始维度和度量并不满足我们的需求&#xff0c;因此可通过计算字段功能&#xff0c;利用各种函数新建字段。创建字段步骤1、在侧栏 创建计算字段2、拖曳字段到输入框或是输入部分字段名称选择字段&#xff0c;当输入框下面显示“计算有效”时可点击 确定 完成计算…

gcc 安装包_LNMP安装的前期准备(LNMP一键安装包下载)

如果我们手工安装 LNMP 环境&#xff0c;那么同样需要安装大概 14 个源码包(根据版本和功能不同而不同)。不过&#xff0c;现在网上非常流行的 LNMP 环境的搭建过程是采用 LNMP 一键安装包直接安装。这个一键安装包实际上就是一个事先写好的安装脚本&#xff0c;按照这个安装脚…

Dapr + .NET 实战(七)Secrets

什么是Secrets应用程序通常会通过使用专用的存储来存储敏感信息&#xff0c;如连接字符串、密钥等。通常这需要建立一个密钥存储&#xff0c;如Azure Key Vault、Hashicorp等&#xff0c;并在那里存储应用程序级别的密钥。要访问这些密钥存储&#xff0c;应用程序需要导入密钥存…

loadrunner 参数化数据更新方式

数据分配方式&#xff1a; Select next row【选择下一行】: 顺序&#xff08;Sequential&#xff09;&#xff1a;按照参数化的数据顺序&#xff0c;一个一个的来取。 随机&#xff08;Random&#xff09;&#xff1a;参数化中的数据&#xff0c;每次随机的从中抽取数据。 唯一…

安全也要“易”,谈NAC的硬件化

说到NAC网络访问控制&#xff0c;浮现在我们脑海中的应该就是软件硬件的构成方式&#xff0c;即用软件作为核心的策略决策点&#xff0c;硬件作为策略执行点&#xff0c;这也是标准的NAC构成方式&#xff0c;纵观业界的主流产品&#xff0c;无论Cisco的C-NAC、Juniper的UAC&…

只有成年人才懂的“爽”,一定要安利给每一个人

▲ 点击查看在日常生活中&#xff0c;诸位是不是经常遇到这些问题&#xff1a;打球扭伤、骑车摔伤、跑步拉伤、户外受伤。或者经常伏案工作&#xff0c;一天上班下来&#xff0c;感觉肩膀酸痛到僵硬&#xff0c;对什么事都提不起兴趣。回到家腰酸、背疼&#xff0c;随便做个伸展…

xml.query() 实例演示

xml.query()函数&#xff0c;XQuery表达式可以返回xml一个单一的元素或是所有元素。 我们继续使用上一篇所创建表[dbo].[tbDevLanguage] http://www.cnblogs.com/insus/archive/2012/02/25/2367668.html 首先我们演示Query所有元素&#xff0c;注意一下查询节点&#xff0c;返回…

mysql xa 演示_mysql的XA事务恢复过程详解

mysql数据库开机报错&#xff1a;InnoDB: The log sequence number in ibdata files does not matchInnoDB: the log sequence number in the ib_logfiles!100224 12:24:20 InnoDB: Database was not shut down normally!InnoDB: Starting crash recovery.InnoDB: Reading tabl…

图像处理前沿技术_深入浅出人工智能前沿技术—机器视觉检测,看清人类智慧工业...

早在50年前&#xff0c;工业机器人就已经横空出世&#xff0c;给人类带来更多的方便与可能。今天&#xff0c;工业机器人正以迅猛的发展速度替代人工&#xff0c;从事繁重及枯燥的工作&#xff0c;并且向着更智能的方向在发展&#xff0c;而服务机器人&#xff0c;将会是下一个…

最全高考分数线出炉!!查了分后,这届学生为了过线真是太拼了.......

全世界只有3.14 % 的人关注了爆炸吧知识2020年高考成绩今天可以查了&#xff01;你还记得自己查分那天是什么心情吗&#xff1f;反正超模君当年是想看却又不敢看表面越是想要云淡风轻内心就越不受控制的心跳失控转眼过去了许多年又到了高考放榜的日子在这么欢乐的日子里怎么能缺…

学习笔记之web worker

当在 HTML 页面中执行脚本时&#xff0c;页面的状态是不可响应的&#xff0c;直到脚本已完成。web worker 是运行在后台的 JavaScript&#xff0c;独立于其他脚本&#xff0c;不会影响页面的性能。您可以继续做任何愿意做的事情&#xff1a;点击、选取内容等等&#xff0c;而此…

让人难以置信的HTML5和JavaScript实验

Google的 Chrome实验室收集了很多让人难以置信的基于 HTML5 Canvas 和 JavaScript 的实验项目&#xff0c;里面的例子都很独特&#xff0c;让人惊叹。我从未想过结合 HTML 和 JavaScript 能实现这么强大的效果。今天&#xff0c;本文与大家分享其中9个很棒的例子&#xff0c;为…

22468!Windows 11新预览版发布:旧版系统支持十月终止请速升

面向 Dev 频道的 Windows 预览体验成员&#xff0c;微软现已发布 Windows 11 预览版 Build 22468。Windows 11 Insider Preview Build 22468 主要变化如下&#xff1a;1.此前 Dev 频道推送的所有 Windows 11 预览版将于 2021 年 10 月 31 日到期&#xff0c;请立即更新到 Windo…

influxdb mysql对比_InfluxDB和MySQL的读写对比测试

今天进行了InfluxDB和MySQL的读写对比测试&#xff0c;这里记录下结果&#xff0c;也方便我以后查阅。操作系统&#xff1a; CentOS6.5_x64InfluxDB版本 &#xff1a; v1.1.0MySQL版本&#xff1a;v5.1.73CPU &#xff1a; Intel(R) Core(TM) i5-2320 CPU 3.00GHz内存 &#x…

python搭建selenium_了解搭建selenium安装以及配置环境

之前带大家了解过很多关于python的安装程序&#xff0c;本期也不例外&#xff0c;现在就带大家了解selenium的安装教程以及配置内容。安装包&#xff1a;python开发工具&#xff1a;pyCharm开源版本Python安装过程&#xff1a;1、双击已下载的python安装包&#xff0c;进入第一…

Zabbix Maintenance 维护周期

为什么80%的码农都做不了架构师&#xff1f;>>> 概述 你可以定义维护周期在主机或主机组里。这里有2种维护状态&#xff0c;一种是停止对目标的监控数据的收集&#xff0c;一种是继续对目标的监控数据的收集。 当不想收到维护中的服务器的报警时候&#xff0c;需…