`
寻梦者
  • 浏览: 635426 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

dialog个性化制作

阅读更多

上一篇讲了讲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:

@Override
    
public void onCreate(Bundle savedInstanceState) {
        
super.onCreate(savedInstanceState);
        setContentView(R.layout.authorize);
        .......
}

      接下来是本文的重点部分,半透明弹窗用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样式文件,具体代码如下:

代码
<?xml version="1.0" encoding="utf-8"?>
<resources>
    
<style name="dialog" parent="@android:style/Theme.Dialog">
        
<item name="android:windowFrame">@null</item>
        
<item name="android:windowIsFloating">true</item>
        
<item name="android:windowIsTranslucent">false</item>
        
<item name="android:windowNoTitle">true</item>
        
<item name="android:windowBackground">@drawable/dia_bg</item>
        
<item name="android:backgroundDimEnabled">false</item>
    
</style>
</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:windowIsTranslucent">false</item>:是否半透明
<item name="android:windowNoTitle">true</item>:是否显示title
<item name="android:windowBackground">@drawable/dia_bg</item>:设置dialog的背景

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

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

......
View diaView
=View.inflate(this, R.layout.dialog, null);
dialog
=new Dialog(AuthorizeActivity.this,R.style.dialog);
dialog.setContentView(diaView);
dialog.show();
......

 

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

分享到:
评论

相关推荐

    自定义DialogDemo

    在Android应用开发中,自定义Dialog是一个常见的需求,它能够帮助我们实现更加个性化和功能丰富的交互体验。"自定义DialogDemo"是一个项目组件,专门用于展示如何在Android中创建和使用自定义对话框。这个Demo提供了...

    旋转动画和帧动画制作自定义ProgressDialog

    这种方式不仅提高了用户体验,还可以根据项目需求自由定制加载指示器的样式,使得应用更具个性化。在实际开发中,可以根据标签"Progress"的相关需求,灵活运用这些动画效果,为用户提供更佳的加载体验。

    vb制作的网络搜索歌曲下载

    这种功能通常涉及到文件系统操作,如创建目录、读写配置文件等,以保存用户的个性化设置。 6. **关于框(_frmAbout.frm)**:这是程序中显示版权信息、版本号、开发者信息的部分,为用户提供软件的基本背景和联系...

    弹窗代码制作

    在HTML5中,可以使用`&lt;dialog&gt;`元素创建自定义的弹窗,配合CSS进行样式设计,使得弹窗更具个性化。例如: ```html &lt;dialog id="myDialog"&gt; 欢迎信息 欢迎来到我们的网站! 关闭 &lt;/dialog&gt; document....

    如何制作一个npc,如何制作一个小程序,Java

    在IT行业中,制作NPC(非玩家角色)通常是游戏开发的一部分,尤其在冒险岛这样的网络游戏里。这个过程涉及编程,特别是使用Java语言。...通过不断学习和实践,你将能创造出富有个性和功能的NPC,以及吸引人的小程序。

    jquery ui制作的响应式后台管理模板html源码下载

    此模板已经预设了一套专业且现代的设计风格,同时也易于调整以满足个性化需求。 4. **优化的交互体验**:jQuery UI 提供的动画效果和过渡处理,使得后台操作更为流畅,提高了用户的满意度。例如,滑动切换面板、渐...

    QQ设置界面---eclipse

    QQ设置界面在IT行业中是一个常见的用户交互界面,尤其在开发桌面应用时,它扮演着提供个性化设置、账户管理等重要功能的角色。Eclipse是一个广泛使用的Java集成开发环境(IDE),它支持多种插件开发,包括创建这样的...

    vs2010程序启动画面的制作方法

    ### VS2010程序启动画面的制作方法详解 #### 概述 本文将详细介绍如何在Visual Studio 2010 (VS2010) 中创建程序启动画面(Splash...这不仅能够提高软件的专业性和用户体验,还能够为您的应用程序增添更多个性化元素。

    使用skin-support库实现插件化换肤demo

    在Android应用开发中,换肤功能能够为用户提供个性化的体验,增强用户对应用的满意度。本文将详细解析如何使用skin-support库来实现插件化换肤,并通过一个名为"skin_demo"的示例项目,展示如何对普通View、Dialog...

    Css锁屏

    《CSS锁屏技术详解》 在现代Web应用中,用户界面的安全性和隐私保护越来越受到重视。...总之,CSS锁屏是一个实用的技巧,通过巧妙结合CSS和JavaScript,我们可以创建出符合需求的个性化锁屏界面。

    C#记事本的制作

    ### C# 记事本制作知识点详解 #### 一、引言 在现代软件开发领域,使用C#语言创建各种...希望您可以在此基础上继续探索和学习更多高级功能,比如语法高亮、多标签页支持等,从而打造出更加个性化和强大的文本编辑器。

    Delphi制作的好用的文本编辑器(带全部源码)

    3. **选项对话框(OptionsDialog.dfm)**:用户可以通过此界面定制编辑器的行为,例如字体选择、编码设置、界面颜色主题等,增强了个性化体验。 4. **超链接支持(HyperLink.dcr)**:编辑器能够识别并高亮显示文本...

    使用VC++制作的简易电子时钟

    同时,也可以自定义控件的绘制,实现个性化的时间显示。 7. **编译与调试**:最后,编译并运行项目,检查时钟是否正常工作。如果有错误,利用VC++的调试工具进行调试,找出问题所在并修复。 总的来说,使用VC++...

    jQuery插件,选项卡

    在IT行业中,jQuery是一个广泛使用的JavaScript...在实际项目中,开发者可以根据需求选择合适的插件,并灵活调整以满足个性化的需求。这些组件不仅提高了用户体验,也降低了开发成本,是现代Web开发中的重要组成部分。

    Android基础编程-自定义对话框.pptx

    系统提供了一些预定义的对话框类型,如普通对话框、单选对话框、多选对话框等,但它们的样式和功能往往无法满足所有应用的个性化需求。这时,我们就需要通过自定义对话框来实现更复杂和独特的界面设计。下面将详细...

    自定义ROM卡刷包教程

    在Android世界中,刷机是一种常见的个性化和优化设备的方式,特别是对于那些喜欢探索手机功能的用户。自定义ROM,即用户根据自己的需求定制的操作系统镜像,能够提供更丰富的功能、更高的性能或更低的资源占用。本文...

    skinmagic教程

    SkinMagic是一款专为Visual C++设计的皮肤制作软件,尤其适合那些想要为自己的MFC应用添加个性化皮肤的程序员。这款工具虽然收费较高,但因其功能强大和易于使用而受到众多开发者的青睐。 【SkinMagic教程概述】 本...

    在WPF中制作下拉样式的自定义颜色选择器

    在WPF(Windows Presentation Foundation)中,开发人员经常需要创建具有独特交互和视觉效果的控件,以满足用户界面的个性化需求。本话题将详细探讨如何制作一个下拉样式的自定义颜色选择器,该控件能够提供丰富的...

    setupfactory7 使用教程

    【SetupFactory7 使用教程】 SetupFactory 7.0 是一款强大的安装程序制作工具,适合初学者和专业人士使用。它的特点是提供了一个直观的向导界面,...通过这些步骤,你可以根据需求创建个性化且功能完善的安装程序。

Global site tag (gtag.js) - Google Analytics