android 自定義dialog彈出和消失動畫
自定義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
<?xml version="1.0" encoding="utf-8"?>
<!-- 設定dialog彈出,退出動畫 -->
<resources>
<style name="dialogWindowAnim" parent="android:Animation" mce_bogus="1">
<item name="android:windowEnterAnimation">@anim/dialog_enter_anim</item>
<item name="android:windowExitAnimation">@anim/dialog_exit_anim</item>
</style>
</resources>
在res/anim下建立,設定dialog視窗彈出動畫
<?xml version="1.0" encoding="utf-8"?>
<!-- 彈出時動畫 -->
<set xmlns:android="http://schemas.android.com/apk/res/android">
<scale
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"/>
</set>
在res/anim下建立,設定dialog視窗退出動畫
<?xml version="1.0" encoding="utf-8"?>
<!-- 退出時動畫效果 -->
<set xmlns:android="http://schemas.android.com/apk/res/android">
<scale
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"/>
</set>
在res/values下建立color
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="vifrification">#00000000</color> <!-- 透明 -->
</resources>
設定dialog視窗layout
<?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:gravity="center"
android:background="@drawable/dialog_background" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="50sp"
android:text="Hello" />
</LinearLayout>
main佈局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="點選彈出myDialog" />
</LinearLayout>
<!--
android:fromXscale="1.0" 表示開始時X軸縮放比例為 1.0 (原圖大小 * 1.0 為原圖大小)
android:toXscale="0.0"表示結束時X軸縮放比例為0.0(原圖大小 *0.0 為縮小到看不見)
android:fromYscale="1.0" 表示開始時Y軸縮放比例為 1.0 (原圖大小 * 1.0 為原圖大小)
android:toYscale="0.0"表示結束時Y軸縮放比例為0.0(原圖大小 *0.0 為縮小的看不到了)
android:pivotX="50%" X軸縮放的位置為中心點
android:pivotY="50%" Y軸縮放的位置為中心點
android:duration="2000" 動畫播放時間 這裡是2000毫秒也就是2秒
-->
相關推薦
android 自定義dialog彈出和消失動畫
自定義dialog視窗,根據座標可隨意設定dialog顯示位置,實現了視窗彈出動畫 Java程式碼: package com.sunxu.org.IndividualityDialog; import android.app.Activity; import and
自定義Dialog彈框和其背景陰影顯示
昨天研究了一下自定義Dialog的彈框,其實要點都是把自定義好的view用setContentView(view)的方法設定進dialog裡,首先我們先看一個簡單的自定義Dialog。 一、寫佈局檔案:custom_dialog_layout.xml(這個佈局就是一個簡單的提示內容,下面有一
android 自定義登陸彈出框
從本節將開始闡述一個完整系統Demo,從登陸--主頁--查詢展示具體詳情...這節是一個自定義登陸彈出框,接著上一節的logo全屏頁面之後將出現一個全屏的ImagView,點選彈出自定義登陸框,輸入賬號密碼提交,彈出
android自定義dialog,軟體鍵盤彈出擋住輸入區域解決
在做新浪oauth2.0認證時,裡面有一個自定義dialog的類。dialog中載入的是一一個webview。當鍵盤彈起的時候就會彈住輸入區域。 解決辦法: 在dialog的oncarete方法中加 getWindow().setSoftInputMode(WindowManager.LayoutPara
Android中自定義底部彈出框ButtomDialog
先看看效果和你要的是否一樣 一 、先來配置自定義控制元件需要的資源。 1.在res資料夾下建立一個anim資料夾並建立兩個slide_in_bottom.xml、slide_out_bottom.xml檔案,負責彈框進出動畫。 <?xml version="1.0" enco
自定義的彈出浮動框-自動消失
// // FadePromptView.m // // Created by wuyj on 5/27/13. // Copyright (c) 2013 wuyj. All rights reserved. // #import "FadePro
Android 自定義Dialog (有圓角和和已適配大螢幕的廣告機)
在開發過程中,有時需要自定義的Dialog,設計的需求是,按照螢幕的比例來顯示Dialog,需要有圓角。效果如下圖。 自定義程式碼Dialog 程式碼如下: CustomDialog.class public class CustomDialog
自定義PopupWindow彈出框(帶有動畫)和呼叫相簿相機佈局
使用PopupWindow來實現彈出框,並且帶有動畫效果 效果一:(第二張圖)首先自定義PopupWindow public class LostPopupWindow extends PopupWindow { public Lost lost;
自定義Dialog彈窗及軟體盤的隱藏和顯示
1.佈局檔案<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" androi
Android自定義Dialog帶Dialog的顯示消失動畫
效果圖 部落格絕大時候還是為了記錄自己的一些想法跟收穫 當我們呼叫Dialog的show方法的時候系統會做哪些事情 public void show() { if (mShowing) { if
android 自定義dialog的實現方法
listener params .get animator miss nim style wrap 參數 最近一直在做 java 相關的東西, 雖然一直在看 Android 但感覺有點留於理論,總這樣畢竟不行,寫的多不一定懂得多,但要想懂得多就一定要寫的多,於是今天動手寫了
Android自定義Dialog多選對話框(Dialog+Listview+CheckBox)
dia bundle adapter get etl wrap 點擊 所有 技術 先放效果截圖 項目中需要有個Dialog全選對話框,點擊全選全部選中,取消全選全部取消。下午查了些資料,重寫了一下Dialog對話框。把代碼放出來。 public class MainAct
Android 自定義Dialog小結
關於自定義佈局的Dialog,總是會遇到各種各樣的問題,作為一個菜鳥,想想還是打算專門開一篇總結自己遇到的各種問題。歡迎大佬們指點 自定義佈局寬度和位置問題 自定義佈局,就是自己自由地設定Dialog的樣式,所以肯定會自己寫一個Layout佈局,並把它加載出來,這才是我們想要的,但是經常會出
【舉例】Android自定義Dialog——做出“確定/取消”的選擇
1、自定義Dialog的介面 <--!dialog_yesorno_for_permission.xml--> <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="
【舉例】Android自定義Dialog——選擇一個RadioButton
1. 自定義Dialog的介面 <--!dialog_selectserver.xml--> <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://sch
微信小程式之 動畫 —— 自定義底部彈出層
wxml: <view class='buy' bindtap='showBuyModal'>立即購買</view> <!-- 點選立即購買 彈出購買遮罩層 --> <view class="cover_screen" bindtap="hideBuyModal"
微信小程序之 動畫 —— 自定義底部彈出層
modals num view radi let art time cit 點擊 wxml: <view class='buy' bindtap='showBuyModal'>立即購買</view> <!--
Android--自定義Dialog,仿IOS對話方塊樣式
效果: 實現: 1.dialog_layout.xml: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/ap
百度地圖精準定位,自定義marker,自定義資訊彈出視窗。
先說下業務場景,在資料庫查出相應的專案展示出來,然後點選專案在百度地圖上標註專案的地址,同時彈出視窗顯示相關的資訊。下面就來看看具體的實現: 1.引入百度地圖相關的API,我這裡選的是web的JavaScript API。後端的
修改dialog 彈出和 隱藏的動畫
首先在dialog 中拿到window 物件 ,然後給window物件設定動畫 上程式碼 Window window = getWindow(); window.setWindowAnimations(R.style.DialogAnimations)