Chinaunix首页 | 论坛 | 博客
  • 博客访问: 53035
  • 博文数量: 18
  • 博客积分: 454
  • 博客等级: 下士
  • 技术积分: 165
  • 用 户 组: 普通用户
  • 注册时间: 2012-01-08 22:40
文章分类
文章存档

2012年(18)

最近访客

分类: 嵌入式

2012-01-08 23:04:20

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

44y6.png

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

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

  1. @Override
  2.     public void onCreate(Bundle savedInstanceState) {
  3.         super.onCreate(savedInstanceState);
  4.         setContentView(R.layout.authorize);
  5.         .......
  6. }
复制代码
接下来是本文的重点部分,半透明弹窗用Dialog控件进行实现,首先为这个半透明弹窗新建一个名为dialog.xml的Layout,这个Layout 主要是对4个元素进行布局,如图所示分别为i小图标、信息提示、中间文字、开始按钮,首先用LinearLayout对i小图标和信息提示进行水平布局,中间文字以一个TextView跟在下面,对于开始按钮是用RelativeLayout进行底部对齐显示。具体代码如下:


  1.   xmlns:android=""
  2.   android:layout_width="wrap_content"
  3.   android:layout_height="wrap_content"
  4.   android:orientation="vertical"
  5.   android:padding="10dip">
  6.   
  7.   android:layout_width="wrap_content"
  8.   android:layout_height="wrap_content"
  9.   android:orientation="horizontal">
  10.   
  11.   android:layout_width="wrap_content"
  12.   android:layout_height="wrap_content"
  13.   android:src="@drawable/info_icon">
  14.   
  15.   
  16.   android:layout_width="wrap_content"
  17.   android:layout_height="wrap_content"
  18.   android:text="信息提示"
  19.   android:textSize="13px"
  20.   android:textColor="#219ac6"
  21.   android:layout_marginLeft="5dip">
  22.   
  23.   
  24.   
  25.   android:id="@+id/text_info"
  26.   android:layout_marginTop="6px"
  27.   android:layout_width="200px"
  28.   android:layout_height="wrap_content"
  29.   android:textColor="#686767"
  30.   android:textSize="14px"
  31.   android:text="第一次使用需要输入您的新浪微博账号和密码进行登录授权">
  32.   
  33.   
  34.   android:layout_width="fill_parent"
  35.   android:layout_height="40px">
  36.       
  37.       android:layout_width="wrap_content"
  38.       android:layout_height="wrap_content"
  39.       android:orientation="horizontal"
  40.       android:layout_centerHorizontal="true"
  41.       android:layout_alignParentBottom="true">
  42.          
  43.           android:id="@+id/btn_start"
  44.           android:layout_width="80px"
  45.           android:layout_height="31px"
  46.           android:src="@drawable/btn_start_selector">
  47.          
  48.          
  49.           android:id="@+id/btn_cancel"
  50.           android:layout_width="80px"
  51.           android:layout_height="31px"
  52.           android:layout_marginLeft="8px"
  53.           android:src="@drawable/btn_cancel_selector">
  54.          
  55.       
  56.   

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



  1.    
复制代码
这个样式文件的说明如下parent="@android:style/Theme.Dialog" :在系统Dialog样式基础上,相当于继承系统样式@null :Dialog的windowFrame框为无true:是否浮现在activity之上< item name="android:windowIsTranslucent">false:是否半透明
true:是否显示title
@drawable/dia_bg:设置dialog的背景

false: 背景是否模糊显示     接下来写java代码把这个半透明弹窗显示出来,在AuthorizeActivity的onCreate方法添加如下代码:
  1. ......
  2. View diaView=View.inflate(this, R.layout.dialog, null);
  3. dialog=new Dialog(AuthorizeActivity.this,R.style.dialog);
  4. dialog.setContentView(diaView);
  5. dialog.show();
  6. ......
复制代码


最后运行查看效果,到这里我们的任务已经完成了。请关注下一篇功能篇。
阅读(999) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~