<?xml version="1.0" encoding="utf-8"?> <alpha xmlns:android="http://schemas.android.com/apk/res/android" android:duration="400" android:fromAlpha="1.0" android:toAlpha="0" />
<?xml version="1.0" encoding="utf-8"?> <rotate xmlns:android="http://schemas.android.com/apk/res/android" android:duration="400" android:fromDegrees="0" android:toDegrees="-135" android:pivotX="50%" android:pivotY="50%" />
<?xml version="1.0" encoding="utf-8"?> <translate xmlns:android="http://schemas.android.com/apk/res/android" android:duration="600" android:fromYDelta="100%" android:interpolator="@android:anim/anticipate_overshoot_interpolator" android:toYDelta="0" />
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <RelativeLayout android:id="@+id/mainPublish_dialog_rlMain" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#eeffffff" android:clickable="true" > <ImageView android:layout_width="220dp" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_marginTop="60dp" android:contentDescription="@null" android:scaleType="centerInside" android:src="@drawable/mainactivity_publish_worlduc" /> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:baselineAligned="false" android:orientation="horizontal" > <LinearLayout android:id="@+id/mainPublish_dialog_llBtnArticle" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:clickable="true" android:orientation="vertical" android:paddingBottom="70dp" android:paddingTop="20dp" > <ImageView android:layout_width="55dp" android:layout_height="55dp" android:layout_gravity="center_horizontal" android:contentDescription="@null" android:src="@drawable/mainactivity_dialogpublish_article_selector" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:layout_marginTop="5dp" android:text="文章" android:textColor="#3E3E3E" android:textSize="13sp" /> </LinearLayout> <LinearLayout android:id="@+id/mainPublish_dialog_llBtnMiniBlog" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:clickable="true" android:orientation="vertical" android:paddingBottom="70dp" android:paddingTop="20dp" > <ImageView android:layout_width="55dp" android:layout_height="55dp" android:layout_gravity="center_horizontal" android:contentDescription="@null" android:src="@drawable/mainactivity_dialogpublish_miniblog_selector" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:layout_marginTop="5dp" android:text="微博" android:textColor="#3E3E3E" android:textSize="13sp" /> </LinearLayout> <LinearLayout android:id="@+id/mainPublish_dialog_llBtnLetter" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:clickable="true" android:orientation="vertical" android:paddingBottom="70dp" android:paddingTop="20dp" > <ImageView android:layout_width="55dp" android:layout_height="55dp" android:layout_gravity="center_horizontal" android:contentDescription="@null" android:src="@drawable/mainactivity_dialogpublish_letter_selector" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:layout_marginTop="5dp" android:text="私信" android:textColor="#3E3E3E" android:textSize="13sp" /> </LinearLayout> <LinearLayout android:id="@+id/mainPublish_dialog_llBtnPhoto" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:clickable="true" android:orientation="vertical" android:paddingBottom="70dp" android:paddingTop="20dp" > <ImageView android:layout_width="55dp" android:layout_height="55dp" android:layout_gravity="center_horizontal" android:contentDescription="@null" android:src="@drawable/mainactivity_dialogpublish_photo_selector" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:layout_marginTop="5dp" android:text="照片" android:textColor="#3E3E3E" android:textSize="13sp" /> </LinearLayout> </LinearLayout> </RelativeLayout> <LinearLayout android:id="@+id/mainPublish_dialog_llBtnMenu" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_centerHorizontal="true" android:clickable="true" android:gravity="bottom|center_horizontal" android:orientation="vertical" android:paddingLeft="10dp" android:paddingRight="10dp" > <ImageView android:id="@+id/mainPublish_dialog_ivMenu" android:layout_width="45dp" android:layout_height="45dp" android:layout_marginBottom="4dp" android:contentDescription="@null" android:src="@drawable/mainactivity_publish_publish2" /> </LinearLayout> </RelativeLayout>
package com.jaiky.publishpopup; import android.app.Dialog; import android.content.Context; import android.os.Bundle; import android.os.Handler; import android.view.KeyEvent; import android.view.View; import android.view.ViewGroup; import android.view.WindowManager; import android.view.animation.AnimationUtils; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.RelativeLayout; /** * Author by Jaiky, Email [email protected], Date on 3/2/2015. * PS: Not easy to write code, please indicate. */ public class PublishDialog extends Dialog { private RelativeLayout rlMain; private Context context; private LinearLayout llBtnArticle, llBtnMiniBlog, llBtnLetter, llBtnPhoto, llBtnMenu; private Handler handler; private ImageView ivMenu; public PublishDialog(Context context) { this(context, R.style.main_publishdialog_style); } private PublishDialog(Context context, int theme) { super(context, theme); this.context = context; init(); } /** * 初始化 */ private void init() { handler = new Handler(); //填充视图 setContentView(R.layout.main_dialog_publish); rlMain = (RelativeLayout) findViewById(R.id.mainPublish_dialog_rlMain); llBtnArticle = (LinearLayout) findViewById(R.id.mainPublish_dialog_llBtnArticle); llBtnMiniBlog = (LinearLayout) findViewById(R.id.mainPublish_dialog_llBtnMiniBlog); llBtnLetter = (LinearLayout) findViewById(R.id.mainPublish_dialog_llBtnLetter); llBtnPhoto = (LinearLayout) findViewById(R.id.mainPublish_dialog_llBtnPhoto); llBtnMenu = (LinearLayout) findViewById(R.id.mainPublish_dialog_llBtnMenu); ivMenu = (ImageView) findViewById(R.id.mainPublish_dialog_ivMenu); llBtnMenu.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { outputDialog(); } }); rlMain.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { outputDialog(); } }); } /** * 进入对话框(带动画) */ private void inputDialog() { llBtnArticle.setVisibility(View.INVISIBLE); llBtnMiniBlog.setVisibility(View.INVISIBLE); llBtnLetter.setVisibility(View.INVISIBLE); llBtnPhoto.setVisibility(View.INVISIBLE); //背景动画 rlMain.startAnimation(AnimationUtils.loadAnimation(context, R.anim.mainactivity_fade_in)); //菜单按钮动画 ivMenu.startAnimation(AnimationUtils.loadAnimation(context, R.anim.mainactivity_rotate_right)); //选项动画 llBtnArticle.setVisibility(View.VISIBLE); llBtnArticle.startAnimation(AnimationUtils.loadAnimation(context, R.anim.mainactivity_push_bottom_in)); handler.postDelayed(new Runnable() { @Override public void run() { llBtnMiniBlog.setVisibility(View.VISIBLE); llBtnMiniBlog.startAnimation(AnimationUtils.loadAnimation(context, R.anim.mainactivity_push_bottom_in)); } }, 100); handler.postDelayed(new Runnable() { @Override public void run() { llBtnLetter.setVisibility(View.VISIBLE); llBtnLetter.startAnimation(AnimationUtils.loadAnimation(context, R.anim.mainactivity_push_bottom_in)); } }, 200); handler.postDelayed(new Runnable() { @Override public void run() { llBtnPhoto.setVisibility(View.VISIBLE); llBtnPhoto.startAnimation(AnimationUtils.loadAnimation(context, R.anim.mainactivity_push_bottom_in)); } }, 300); } @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (isShowing()) { outputDialog(); return true; } else { return super.onKeyDown(keyCode, event); } } /** * 取消对话框(带动画) */ private void outputDialog() { //退出动画 rlMain.startAnimation(AnimationUtils.loadAnimation(context, R.anim.mainactivity_fade_out)); ivMenu.startAnimation(AnimationUtils.loadAnimation(context, R.anim.mainactivity_rotate_left)); handler.postDelayed(new Runnable() { @Override public void run() { dismiss(); } }, 400); llBtnArticle.startAnimation(AnimationUtils.loadAnimation(context, R.anim.mainactivity_push_bottom_out)); llBtnArticle.setVisibility(View.INVISIBLE); handler.postDelayed(new Runnable() { @Override public void run() { llBtnMiniBlog.startAnimation(AnimationUtils.loadAnimation(context, R.anim.mainactivity_push_bottom_out)); llBtnMiniBlog.setVisibility(View.INVISIBLE); } }, 50); handler.postDelayed(new Runnable() { @Override public void run() { llBtnLetter.startAnimation(AnimationUtils.loadAnimation(context, R.anim.mainactivity_push_bottom_out)); llBtnLetter.setVisibility(View.INVISIBLE); } }, 100); handler.postDelayed(new Runnable() { @Override public void run() { llBtnPhoto.startAnimation(AnimationUtils.loadAnimation(context, R.anim.mainactivity_push_bottom_out)); llBtnPhoto.setVisibility(View.INVISIBLE); } }, 150); } @Override public void show() { super.show(); inputDialog(); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //全屏 WindowManager.LayoutParams params = getWindow().getAttributes(); params.height = ViewGroup.LayoutParams.MATCH_PARENT; params.width = ViewGroup.LayoutParams.MATCH_PARENT; getWindow().setAttributes((android.view.WindowManager.LayoutParams) params); } public PublishDialog setArticleBtnClickListener(android.view.View.OnClickListener clickListener) { llBtnArticle.setOnClickListener(clickListener); return this; } public PublishDialog setMiniBlogBtnClickListener(android.view.View.OnClickListener clickListener) { llBtnMiniBlog.setOnClickListener(clickListener); return this; } public PublishDialog setLetterBtnClickListener(android.view.View.OnClickListener clickListener) { llBtnLetter.setOnClickListener(clickListener); return this; } public PublishDialog setPhotoBtnClickListener(android.view.View.OnClickListener clickListener) { llBtnPhoto.setOnClickListener(clickListener); return this; } }
欢迎转载,但请保留文章原始出处
作者:Jaiky_杰哥
出处:http://blog.csdn.net/jaikydota163/article/details/52098884