`
cooper100
  • 浏览: 13069 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Android高手进阶教程(五)之----Android 中LayoutInflater的使用!

 
阅读更多
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://weizhulin.blog.51cto.com/1556324/311450
大家好我们这一节讲的是LayoutInflater的使用,在实际开发种LayoutInflater这个类还是非常有用的,它的作用类似于 findViewById(),
不同点是LayoutInflater是用来找layout下xml布局文件,并且实例化!而findViewById()是找具体xml下的具体 widget控件(如:Button,TextView等)。
为了让大家容易理解我做了一个简单的Demo,主布局main.xml里有一个TextView和一个Button,当点击Button,出现 Dialog,而这个Dialog的布局方式是我们在layout目录下定义的custom_dialog.xml文件(里面左右分布,左边 ImageView,右边TextView)。
效果图如下:

下面我将详细的说明Demo的实现过程:
1、新建一个 Android工程,我们命名为LayoutInflaterDemo.
2、修改main.xml布局,里面主要在原来基础上增加了一个Button.代码如下:
view plaincopy to clipboardprint? 
<?xml version="1.0"     
encoding="utf-8"?>    
<LinearLayout     
xmlns:android="http://schemas.android.com/apk/res/android"   
    android:orientation="vertical"   
    android:layout_width="fill_parent"   
    android:layout_height="fill_parent"   
    >    
<TextView      
    android:layout_width="fill_parent"     
    android:layout_height="wrap_content"     
    android:text="@string/hello"   
    />    
<Button    
    android:id="@+id/button"   
    android:layout_width="wrap_content"   
    android:layout_height="wrap_content"   
    android:text="ShowCustomDialog"   
    />    
</LinearLayout>   
<?xml version="1.0"  
encoding="utf-8"?>
<LinearLayout  
xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<TextView   
    android:layout_width="fill_parent"  
    android:layout_height="wrap_content"  
    android:text="@string/hello"
    />
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="ShowCustomDialog"
/>
</LinearLayout>

3.定义对话框的布局方式,我们在layout目录下,新建一个名为 custom_dialog.xml文件具体代码如下:
view plaincopy to clipboardprint? 
<?xml version="1.0"     
encoding="utf-8"?>    
<LinearLayout     
xmlns:android="http://schemas.android.com/apk/res/android"   
              android:orientation="horizontal"   
              android:layout_width="fill_parent"   
              android:layout_height="fill_parent"   
              android:padding="10dp"   
              >    
    <ImageView android:id="@+id/image"   
               android:layout_width="wrap_content"   
               android:layout_height="fill_parent"   
               android:layout_marginRight="10dp"   
               />    
    <TextView android:id="@+id/text"   
              android:layout_width="wrap_content"   
              android:layout_height="fill_parent"   
              android:textColor="#FFF"   
              />    
</LinearLayout>   


4.修改主程序LayouInflaterDemo.java代码如下:

view plaincopy to clipboardprint? 
package com.android.tutor;    
import android.app.Activity;    
import android.app.AlertDialog;    
import android.content.Context;    
import android.os.Bundle;    
import android.view.LayoutInflater;    
import android.view.View;    
import android.view.View.OnClickListener;    
import android.widget.Button;    
import android.widget.ImageView;    
import android.widget.TextView;    
public class LayoutInflaterDemo extends Activity implements     
OnClickListener {    
        
    private Button button;    
    public void onCreate(Bundle savedInstanceState) {    
        super.onCreate(savedInstanceState);    
        setContentView(R.layout.main);    
            
        button = (Button)findViewById(R.id.button);    
        button.setOnClickListener(this);    
    }    
    @Override   
    public void onClick(View v) {    
            
        showCustomDialog();    
    }    
        
    public void showCustomDialog()    
    {    
        AlertDialog.Builder builder;    
        AlertDialog alertDialog;    
        Context mContext = LayoutInflaterDemo.this;    
            
        //下面俩种方法都可以    
        ////LayoutInflater inflater = getLayoutInflater();    
        LayoutInflater inflater = (LayoutInflater)     
mContext.getSystemService(LAYOUT_INFLATER_SERVICE);    
        View layout = inflater.inflate(R.layout.custom_dialog,null);    
        TextView text = (TextView) layout.findViewById(R.id.text);    
        text.setText("Hello, Welcome to Mr Wei's blog!");    
        ImageView image = (ImageView) layout.findViewById(R.id.image);    
        image.setImageResource(R.drawable.icon);    
        builder = new AlertDialog.Builder(mContext);    
        builder.setView(layout);    
        alertDialog = builder.create();    
        alertDialog.show();    
    }    
}   

5、最后执行之,点击Button,将得到上述效果。
本文出自 “Android_Tutor” 博客,请务必保留此出处http://weizhulin.blog.51cto.com/1556324/311450
分享到:
评论

相关推荐

    Android高手进阶教程与Android基础教程

    Android高手进阶教程之----Android 中LayoutInflater的使用! .doc Android高手进阶教程之----Android 中MenuInflater的使用(布局定义菜单)! .doc Android高手进阶教程之----Android 中Preferences的使用! .doc ...

    android高手进阶教程 完整版 pdf

    ### Android高手进阶教程知识点概览 #### 一、Android常用命令集锦 - **ADB命令**: ADB(Android Debug Bridge)是Android平台下用于调试的工具,它可以帮助开发者进行设备管理、应用安装与卸载等操作。 - `adb ...

    Android高手进阶教程.pdf

    ### Android高手进阶教程知识点概览 #### 一、Android常用命令集锦 在进行Android开发的过程中,掌握一些常用的命令可以极大地提高工作效率。本章节主要介绍了一些常用的Android命令及其应用场景。 - **adb命令**...

    android高手进阶教程

    《Android高手进阶教程》是一份详尽的指南,旨在帮助开发者深入了解并掌握Android平台的高级功能与技术细节。这份教程覆盖了多个关键主题,包括系统命令、UI组件的定制化、数据存储、网络通信、位置服务等,是提升...

    Android应用源码之android-styled-dialogs 可自定义样式的dialog-IT计算机-毕业设计.zip

    这份源码提供了丰富的示例和实践,非常适合毕业设计学习和进阶Android开发者提升UI设计能力。 首先,让我们深入理解Android中的Dialog。Dialog是Android应用程序中的一种轻量级窗口,它浮现在当前活动(Activity)...

    android学习——GridView

    在本教程中,我们将深入探讨如何在Android应用中使用GridView。 首先,理解GridView的基本概念是至关重要的。GridView继承自ViewGroup,它将子视图(Views)组织成一个可滚动的二维数组。每个子视图占据网格中的一...

    何红辉关爱民-Android源码设计模式解析与实战(pdf带书签高清版)

    总之,《何红辉关爱民-Android源码设计模式解析与实战》是一本深入浅出的Android进阶书籍,它将帮助开发者从源码层面理解Android,运用设计模式提高开发效率,从而在Android开发领域达到更高的专业水平。无论是初学...

    android 具有选择功能的对话框dialog

    在Android开发中,Dialog是一种非常常见的用户界面组件,它用于在主界面之上显示临时的、半透明的窗口,用于向用户展示信息或者进行简单的交互。本文将深入探讨如何创建一个具有选择功能的对话框(Dialog),包括...

    中关村黑马程序员训练营android-4.0视频下载地址

    - **内容介绍**:讲解了如何在Android应用中使用图像资源、绘制图形和文本,以及如何实现基本的2D图形操作。 #### 8. DDMS工具 - **视频链接**:http://www.400gb.com/file/64194953 - **内容介绍**:DDMS(Device ...

    Android之ListView列表视图和界面跳转实现

    在Android开发中,ListView是一种非常常见的控件,用于展示大量数据的列表形式。它具有高度可定制性,能够实现各种自定义布局和交互效果。本教程将深入讲解如何实现一个基本的ListView,并在用户点击列表项时跳转到...

    android控件及事件的使用(1)

    虽然没有具体的描述内容,但从标题我们可以推测,它可能会涵盖一些基础到进阶的Android控件使用技巧以及事件监听机制。 1. **控件介绍**: - **TextView**: 显示文本,可以设置字体、颜色、大小等属性。 - **...

    Android高级应用源码-Android Launcher 源码修改可编译.zip

    1. **布局加载**:`LauncherActivity`会调用`onCreate()`方法初始化界面,这里会涉及到`LayoutInflater`的使用,将XML布局文件转换为视图对象。 2. **触摸事件处理**:`onTouchEvent()`方法处理用户触摸屏幕的事件...

    实例讲解Android中ViewPager组件的一些进阶使用技巧

    在Android开发中,ViewPager是一个非常重要的组件,常用于实现页面滑动效果,尤其在展示多个相似内容的页面时。在本实例中,我们将探讨如何利用ViewPager实现一些高级使用技巧,特别是自定义滑块来标记当前页面。 ...

    Android 具有伸缩效果的ListView源码.zip源码资源下载

    在Android开发中,ListView是常用的一种控件,用于展示大量数据列表。为了增强用户体验,开发者经常需要对ListView...同时,这也是Android开发者进阶过程中不可或缺的一部分,能够加深对Android系统和UI设计的理解。

    安卓Android源码——android桌面悬浮窗效果进阶 仿360手机卫士、淘宝手机助手.rar

    本教程将通过一个名为"FloatWindowDemo"的项目,深入讲解如何在Android系统中创建和管理桌面悬浮窗。 首先,我们来了解悬浮窗的基本概念。在Android中,悬浮窗是基于系统权限`SYSTEM_ALERT_WINDOW`实现的,它允许...

    安卓开发-android桌面悬浮窗效果进阶 仿360手机卫士、淘宝手机助手.zip

    首先,实现桌面悬浮窗的关键在于使用Android的SYSTEM_ALERT_WINDOW权限。在AndroidManifest.xml文件中添加以下权限: ```xml &lt;uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /&gt; ``` ...

    android桌面悬浮窗效果进阶 仿360手机卫士、淘宝手机助手_悬浮窗效果.zip

    在Android开发中,桌面悬浮窗(Floating Window)是一种常见的功能,它可以实现在用户界面上方显示一个小窗口,常用于提供快捷操作或者实时信息展示。本教程将深入探讨如何实现类似360手机卫士和淘宝手机助手的桌面...

    Android源码设计模式解析与实战

    《Android源码设计模式解析与实战》是一本深入探讨Android系统源码中设计模式应用的专业书籍,适合已经有一定Android开发基础并希望进一步提升技术能力的开发者阅读。这本书旨在通过实例解析,帮助读者理解并掌握...

Global site tag (gtag.js) - Google Analytics