PopupWindow是一個常用的一個元件,和popwindow相似的元件,還有一個叫AlertDialog
PopupWindow的自定義相信大家一定很熟悉,這裡我展示一下我的相關代碼了,如有不足請指教哦
PopupWindow pop=new PopupWindow(context);
View contentView = LayoutInflater.from(context).inflate(R.layout.navigationpopup, null); //擷取popupwindow樣式
pop.setContentView(contentView);
pop.setWidth(LayoutParams.MATCH_PARENT);// 設定寬度
pop.setHeight(LayoutParams.WRAP_CONTENT);//設定高度
//初始化layout 上面的view
Button btn=(Button)contentView.findViewById(R.id.btn);
//添加點選事件--省略
pop.setAnimationStyle(R.style.AnimationFade_bottom);//設定動畫
pop.setOutsideTouchable(true);//設定outside touch
pop.getBackground().setAlpha();//設定背景為透明
pop.showAtLocation(context.findViewById(R.id.ll_web), Gravity.BOTTOM, , );//設定顯示
彈出動畫展示給大家:
<style name="AnimationFade_bottom">
<!-- PopupWindow_bottom上下彈出的效果 -->
<item name="android:windowEnterAnimation">@anim/in_bottomtotop</item>
<item name="android:windowExitAnimation">@anim/out_toptobottom</item>
</style>
@anim/in_bottomtotop
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
<!-- 定義從上向下進入的動畫 -->
<translate
android:duration="200"
android:fromYDelta="100%"
android:toYDelta="0" />
</set>
@anim/out_toptobottom
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
<!-- 定義從下向上進入的動畫 -->
<translate
android:duration="200"
android:fromYDelta="0"
android:toYDelta="100%" />
</set>
自定義的樣式主要看你的layout怎麼寫了
這裡再寫一個自定義的AlertDialog,
這裡我們注意到Layout的作用,當我們自定義Alert 的時候就能夠對于Alert的樣式進行修改,進而達到自定義的目的。
// 取得自定義View
LayoutInflater layoutInflater = LayoutInflater.from(this);
View myLoginView = layoutInflater.inflate(R.layout.login, null);
Dialog alertDialog = new AlertDialog.Builder(this).
setTitle("使用者登入").
setIcon(R.drawable.ic_launcher).
setView(myLoginView).
setPositiveButton("登入", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
}
}).
setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
}
}).
create();
alertDialog.show();