自定义dialog窗口,根据坐标可随意设置dialog显示位置,实现了窗口弹出动画

Java代码:

package com.sunxu.org.IndividualityDialog;

import android.app.Activity;

import android.app.Dialog;

import android.content.Context;

import android.os.Bundle;

import android.view.Gravity;

import android.view.View;

import android.view.View.OnClickListener;

import android.view.Window;

import android.view.WindowManager;

import android.widget.Button;

public class IndividualityDialogActivity extends Activity {

/** Called when the activity is first created. */

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

Button btn = (Button)findViewById(R.id.button1);

btn.setOnClickListener(new OnClickListener()

{

public void onClick(View v)

{

//多个Activity嵌套时用this.parent否则异常

new myDialog(IndividualityDialogActivity.this)

.showDialog(R.layout.dialog, 80, 50);

}

});

}

//自定义Dialog

class myDialog extends Dialog{

private Window window = null;

public myDialog(Context context)

{

super(context);

}

public void showDialog(int layoutResID, int x, int y){

setContentView(layoutResID);

windowDeploy(x, y);

//设置触摸对话框意外的地方取消对话框

setCanceledOnTouchOutside(true);

show();

}

//设置窗口显示

public void windowDeploy(int x, int y){

window = getWindow(); //得到对话框

window.setWindowAnimations(R.style.dialogWindowAnim); //设置窗口弹出动画

window.setBackgroundDrawableResource(R.color.vifrification); //设置对话框背景为透明

WindowManager.LayoutParams wl = window.getAttributes();

//根据x,y坐标设置窗口需要显示的位置

wl.x = x; //x小于0左移,大于0右移

wl.y = y; //y小于0上移,大于0下移

//            wl.alpha = 0.6f; //设置透明度

//            wl.gravity = Gravity.BOTTOM; //设置重力

window.setAttributes(wl);

}

}

}

设置窗口弹出,退出动画在res/values下创建style

@anim/dialog_enter_anim

@anim/dialog_exit_anim

在res/anim下创建,设置dialog窗口弹出动画

android:interpolator="@android:anim/accelerate_interpolator"

android:fromXScale="1.0"

android:toXScale="1.0"

android:fromYScale="0.0"

android:toYScale="1.0"

android:pivotX="0%"

android:pivotY="100%"

android:fillAfter="false"

android:duration="400"/>

在res/anim下创建,设置dialog窗口退出动画

android:interpolator="@android:anim/accelerate_interpolator"

android:fromXScale="1.0"

android:toXScale="1.0"

android:fromYScale="1.0"

android:toYScale="0.0"

android:pivotX="0%"

android:pivotY="100%"

android:fillAfter="false"

android:duration="400"/>

在res/values下创建color

#00000000

设置dialog窗口layout

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:orientation="vertical"

android:gravity="center"

android:background="@drawable/dialog_background" >

android:id="@+id/textView1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:textSize="50sp"

android:text="Hello" />

main布局

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:orientation="vertical" >

android:id="@+id/button1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="点击弹出myDialog" />

android常用窗口动画,android 自定义dialog,窗口动画,相关推荐

  1. Android带参数回传的自定义dialog

    Android带参数回传的自定义dialog 1.首先,建立一个属于dialog的style样式: <style name="MessageListDialog" paren ...

  2. android 常用布局组件,Android六大基本布局

    8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? 一.基本理论 Android六大基本布局分别是: 线性布局LinearLayout. 表格布局TableLayout. ...

  3. Android仿探探社交自定义闪聊动画效果

    需要实现的效果图如探探 ### 主要实现方式 就是一个自定义控件,循环的去画圆,在圆半径增加的时候,找到圆上的3个点,然后把图片画上对应的坐标,半径越大,透明度越高 * 这里用到了一些数学知识* 求圆 ...

  4. android常用api大全,Android开发个人总结常用的api

    前言 这只是记录下开发过程中常用的api,是经常可能忘了导致去百度的 我还是希望大家最好记在脑子里,需要也提倡查找api,但我感觉只有记住了才能融会贯通,满足需求.每次查出来的,怕不了解,不敢修改等等 ...

  5. android 常用开发插件,Android Studio 开发利器【常用插件】

    1.ADB Idea ADB操作快捷菜单,快速清除数据,重启应用,卸载应用等 快捷键: Windows: Ctrl+Alt+Shift+A Mac OSX: Ctrl+Shift+A 当然,你可以在K ...

  6. Android 常用正则表达式,android编程实战

    | 字符 | 说明 | | - | - | | \ | 将下一字符标记为特殊字符.文本.反向引用或八进制转义符.例如,"n"匹配字符"n"."\n&q ...

  7. android 常用编译工具,Android 抖音常用反编译工具

    Android 抖音常用反编译工具 常用反编译工具 apktool :反编译apk,重构. dex2jar :反编译apk,解压 classes.dex 文件 JD-GUI :将class文件反编译成 ...

  8. android常用api大全,Android API详解大全.pdf

    Android API详解大全 Android -- TextView 一.TextView的API 1.1 结构 java.lang.Object ↳ android.view.View ↳ and ...

  9. android常用api大全,Android相关常用API……

    android.provider.MediaStore里包含了相关的Image,Video,Audio信息,可通过managedQuery方法来查询和遍历. Android中的AdapterView使 ...

最新文章

  1. JAVA框架之Hibernate【配置文件详解】
  2. Mongodb 请求处理流程
  3. 记录第一次使用jni编译so包的入门操作
  4. SharePoint 2013 Workflow - Advanced Workflow Debugging with Fiddler
  5. wordpress 通过域名无法访问_VPS主机和宝塔面板搭建WordPress网站教程
  6. iPhone 14 Pro影像规格曝光:升级48MP主摄 镜头模组也大了
  7. 为什么说java语言是支持跨平台的
  8. 计算机无法启动printspooler,Win7系统下print spooler服务无法启动的解决方法
  9. Excel:列的顺序颠倒(d-a列变成a-d列)
  10. Vue 3.0 Ref-sugar 提案到底是啥,真的是自寻死路吗?
  11. python菜单怎么做_Python 城市菜单详解(超详解)
  12. 互联网晚报 | 11/11 星期五 | 苹果默认不再接受隔空投送;扎克伯格就万人被裁视频致歉;波司登旗舰店被曝先提价再打折...
  13. C语言课程设计——停车场管理系统
  14. App渗透中常见的加密与解密
  15. sqlserver 属性 TextHeader 不可用于 StoredProcedure“[dbo].[x]”该对象可能没有此属性,也可能是访问权限不足而无法检索。 该文本已加密。
  16. 绿岛风IPO上市已过会 加大人才储备 创新管理模式
  17. 成都拓嘉启远:怎样才能成功升级拼多多旗舰店
  18. 《猩球崛起2:黎明之战》之《汉武大帝》贰师将军
  19. 2017 年最佳开源网络监控工具
  20. 计算机系统大作业:程序人生-Hello‘s P2P

热门文章

  1. 中小型研发团队架构落地实践18篇,含案例、代码
  2. Java 接口中使用数组缺点的理由
  3. 数据存储与访问之——初见SQLite数据库
  4. ViT (Vision Transformer) ---- Text Generation(文本生成器)
  5. 华为p50出厂自带鸿蒙,真的假的?华为P50系列出厂就预装鸿蒙
  6. 敏感词过滤算法:前缀树算法
  7. was环境通过HTTPS访问其他域名报错 CWPKI0022E: SSL 握手故障:已从目标主机:端口“。。。...
  8. HCNA-RS笔记-20171105-day03
  9. Log4j 配置的webAppRootKey参数问题
  10. 在场景中添加光线——在反光表面添加镜面高光