`

ch016 Android 自定义对话框.

阅读更多

--------------------------------------------AndroidManifest.xml----------------------------------

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

    package="com.ch16"

    android:versionCode="1"

    android:versionName="1.0" >

    <uses-sdk

        android:minSdkVersion="10"

        android:targetSdkVersion="15" />

    <application

        android:icon="@drawable/ic_launcher"

        android:label="@string/app_name"

        android:theme="@style/AppTheme" >

        <activity

            android:name=".MainActivity"

            android:label="@string/title_activity_main" >

            <intent-filter>

                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />

            </intent-filter>

        </activity>

    </application>

</manifest>

--------------------------------------------Layout activity_main.xml---------------------------

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:tools="http://schemas.android.com/tools"

    android:layout_width="match_parent"

    android:layout_height="match_parent" >

    <TextView

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:layout_centerHorizontal="true"

        android:layout_centerVertical="true"

        android:text="@string/hello_world"

        tools:context=".MainActivity" />

</RelativeLayout>

--------------------------------------------Layout mydialog.xml---------------------------------

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:tools="http://schemas.android.com/tools"

    android:id="@+id/LinearLayout1"

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:background="@drawable/dialog_bg"

    android:orientation="vertical" >

    <RelativeLayout

        android:layout_width="wrap_content"

        android:layout_height="wrap_content" >

        <ImageView

            android:id="@+id/ico"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:layout_marginLeft="50dp"

            android:src="@drawable/dialog_title_image" />

        <TextView

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:layout_marginTop="20dp"

            android:layout_toRightOf="@+id/ico"

            android:text="Title"

            android:textSize="42dp" />

    </RelativeLayout>

    

    <!-- 中间分割线 -->

    <TextView

        android:layout_width="wrap_content"

        android:layout_height="1dp"

        android:background="@drawable/lins" />

    <!-- 消息体 -->

    <TextView

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:layout_gravity="center"

        android:text="这是一个自定义Dialog" />

    <RelativeLayout

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:layout_marginBottom="30dp"

        android:layout_marginLeft="50dp"

        android:layout_marginRight="50dp"

        android:layout_marginTop="20dp" >

        <Button

            android:id="@+id/ok"

            android:layout_width="100dp"

            android:layout_height="wrap_content"

            android:layout_marginRight="20dp"

            android:text="确定" />

        <Button

            android:id="@+id/btn_canal"

            android:layout_width="100dp"

            android:layout_height="wrap_content"

            android:layout_toRightOf="@id/ok"

            android:text="取消" />

    </RelativeLayout>

</LinearLayout>

--------------------------------------------MainActivity.java--------------------------------------

package com.ch16;

import android.app.Activity;

import android.os.Bundle;

public class MainActivity extends Activity {

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

/* 实例化自定义对话框 */

MyDialog dialog = new MyDialog(this, R.style.mydialog);

/* 显示对话框 */

dialog.show();

}

}

--------------------------------------------MyDialog.java----------------------------------

package com.ch16;

import android.app.Dialog;

import android.content.Context;

import android.os.Bundle;

import android.view.View;

import android.widget.Button;

import android.widget.Toast;

/**

 * 

 * 项目名称:com.ch16    

 * 类名称:MyDialog    

 * 类描述: 自定义对话框

 * 创建人:方勇   

 * 创建时间:2012-11-26 上午11:28:39   

 * Copyright (c) 方勇-版权所有

 */

public class MyDialog extends Dialog {

/* 确定按钮 */

private Button btn_ok;

/* 上下文 */

private Context mcontext;

public MyDialog(Context context) {

super(context);

mcontext = context;

}

public MyDialog(Context context, int theme) {

super(context, theme);

mcontext = context;

}

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.mydialog);

findViews();

setListeners();

}

/* 实例化UI */

private void findViews() {

btn_ok = (Button) findViewById(R.id.ok);

}

/* 设置确定按钮监听器 */

private void setListeners() {

btn_ok.setOnClickListener(onClickListener);

}

private View.OnClickListener onClickListener = new View.OnClickListener() {

@Override

public void onClick(View v) {

showResults();

}

};

/* 显示结果 */

private void showResults() {

Toast.makeText(mcontext"test......", Toast.LENGTH_LONG).show();

}

}

--------------------------------------------Style mydialog.xml-----------------------------------

<resources xmlns:android="http://schemas.android.com/apk/res/android">

    <style name="mydialog" parent="android:Theme.Dialog" >

        <item name="android:windowFrame">@null</item>

        <!-- 无标题 -->

        <item name="android:windowNoTitle">true</item>

        <item name="android:windowBackground">@drawable/dialog_bg</item>

        <!-- 悬浮效果 -->

        <item name="android:windowIsFloating">true</item>

        <!-- 遮罩效果 -->

        <item name="android:windowContentOverlay">@null</item>

    </style>

</resources>

--------------------------------------------效果图--------------------------------------------------

<!--EndFragment-->
  • 大小: 107.6 KB
0
3
分享到:
评论

相关推荐

    Android 简单对话框,列表对话框示例

    本示例主要关注`Android`中的几种基本对话框类型:普通AlertDialog、列表对话框(ListDialog)、进度对话框(ProgressDialog)以及自定义对话框,通过实例来阐述如何在代码中实现它们。 首先,我们来看`AlertDialog...

    Android代码-Android自定义欢迎屏幕

    An easy to use and customizable welcome screen for Android apps. Look in the sample to see how the above welcome screen is created. Features Fully customizable RTL support Ability to use built in ...

    关于碎片, 对话框碎片

    3. 如果需要自定义对话框内容,还应重写`onCreateView()`方法。 4. 在Activity中,通过`FragmentManager`添加或替换DialogFragment,使用`show()`方法显示对话框。 例如,在`ch29_DialogFragmentDemo`中的示例可能...

    Androidsdk范例大全(CH03-CH05)

    CH04章节可能涉及Android UI设计和用户交互,包括布局管理器(如LinearLayout、RelativeLayout、GridLayout等)、自定义View、触摸事件处理、动画效果、通知以及对话框等。理解如何创建和管理布局对于构建用户友好的...

    安卓USB转串口实例

    5. **CH340驱动集成**:由于Android系统可能不内置CH340驱动,我们可能需要在应用中包含驱动库,或者使用第三方库如Android USB Serial for CH340,这些库已经包含了CH340所需的驱动代码。 6. **串口通信**:使用` ...

    ch04_android开发_

    在Android开发领域,"ch04_android开发_"可能是指一个章节或教程,专注于讲解如何在Android应用程序中使用各种用户界面元素和交互方式。这个压缩包包含了一些示例项目,可以帮助开发者深入理解Android应用中的关键...

    android开发DialogFragment实例

    在Android应用开发中,`DialogFragment`是对话框的一个组件,它是`Fragment`的一个子类,可以方便地在Activity中展示对话框样式的通知或交互。`DialogFragment`提供了与用户进行交互的方式,同时保持了与Android碎片...

    Android USB通信app

    它可能包含了一个自定义的USB服务,用于监听USB设备的连接、断开事件,以及进行实际的数据传输。用户安装此应用后,通过简单的界面就能与连接的Arduino AVR设备交互,发送命令或接收反馈数据。 5. **编程实现**:在...

    android图片浏览器(源码)

    1. **ListView**:在文件名称`ch12_ListView2`中,`ListView`是Android中的一个核心组件,常用于显示大量可滚动的数据列表。在图片浏览器中,ListView通常用于展示图片的缩略图列表,用户可以通过滑动屏幕来浏览不同...

    android开发范例大全第三章(用户人人机界面)

    6. **对话框(Dialogs)**:了解如何创建和使用各种对话框,如警告对话框、输入对话框、进度对话框等,以提供用户交互的辅助界面。 7. **触摸事件(Touch Events)**:理解MotionEvent类和触摸事件的生命周期,实现...

    DevExpress_Universal_Complete_17.2.3_Build_20171116_Downloadly.ir.rar

    8. **Source Code and Documentation**:DevExpress 通常会提供源代码和详细的文档,方便开发者深入理解组件的工作原理并进行自定义扩展。 安装此压缩包后,开发者将能够利用 DevExpress 的组件和工具,提高其 ...

    ColorPicker

    4. **移动开发**:对于Android,有Android SDK自带的ColorPickerDialog;而对于iOS,开发者可以使用UIPickerView或第三方库如ColorPickerSwift。 三、编程实现ColorPicker 1. **Java**:在Java中,我们可以使用...

    程序员的新年祝福 Happy New Year

    28. Assembly (NASM):`org 0x7c00h mov ax, cs mov ds, ax mov es, ax call DispStr jmp $ DispStr: mov ax, BootMessage mov bp, ax mov cx, 16 mov ax, 0x1301h mov bx, 0x000ch mov dl, 0 int 10h ret ...

Global site tag (gtag.js) - Google Analytics