Android-自定义Dialog

60 阅读2分钟

添加以下代码:

<item name="android:windowBackground">@android:color/transparent</item> <item name="android:windowNoTitle">true</item>

2. 自定义Dialog

package com.wwj.custom.dialog;

import android.app.Dialog;

import android.content.Context;

import android.content.res.Resources;

import android.util.DisplayMetrics;

import android.view.Gravity;

import android.view.Window;

import android.view.WindowManager;

/**

  • 自定义对话框

  • @author wwj

*/

public class CustomDialog extends Dialog {

private static int default_width = 160; // 默认宽度

private static int default_height = 120;// 默认高度

public CustomDialog(Context context) {

super(context);

}

public CustomDialog(Context context, int layout, int style) {

this(context, default_width, default_height, layout, style);

}

public CustomDialog(Context context, int width, int height, int layout,

int style) {

super(context, style);

// 设置内容

setContentView(layout);

// 设置窗口属性

Window window = getWindow();

WindowManager.LayoutParams params = window.getAttributes();

// 设置宽度、高度、密度、对齐方式

float density = getDensity(context);

params.width = (int) (width * density);

params.height = (int) (height * density);

params.gravity = Gravity.CENTER;

window.setAttributes(params);

}

/**

  • 获取显示密度

  • @param context

  • @return

*/

public float getDensity(Context context) {

Resources res = context.getResources();

DisplayMetrics dm = res.getDisplayMetrics();

return dm.density;

}

}

3. 自定义布局

/04_CustomDialog/res/layout/dialog_layout.xml

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

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:background="@drawable/dialog_bg"

android:gravity="center"

android:orientation="vertical" >

<ProgressBar

style="@style/DialogTheme"

android:layout_width="wrap_content"

android:layout_height="wrap_content" />

<TextView

android:id="@+id/message"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_marginTop="5dp"

android:text="正在执行..." />

布局文件中用到了一个图像资源:

/04_CustomDialog/res/drawable/dialog_bg.xml

<shape xmlns:android="schemas.android.com/apk/res/and…"

android:shape="rectangle" >

4. 显示自定义对话框

package com.wwj.custom.dialog;

import android.app.Activity;

import android.os.Bundle;

/**

  • 1.修改系统默认的Dialog样式(风格、主题)

  • 2.自定义Dialog布局文件

最后

我见过很多技术leader在面试的时候,遇到处于迷茫期的大龄程序员,比面试官年龄都大。这些人有一些共同特征:可能工作了5、6年,还是每天重复给业务部门写代码,工作内容的重复性比较高,没有什么技术含量的工作。问到这些人的职业规划时,他们也没有太多想法。

其实30岁到40岁是一个人职业发展的黄金阶段,一定要在业务范围内的扩张,技术广度和深度提升上有自己的计划,才有助于在职业发展上有持续的发展路径,而不至于停滞不前。

不断奔跑,你就知道学习的意义所在!

《Android高级架构师面试指导+2021大厂面试真题》免费领取