日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

android 自定义弹窗diss,Android中自定义PopupWindow,动态弹窗。

發布時間:2023/12/2 Android 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android 自定义弹窗diss,Android中自定义PopupWindow,动态弹窗。 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我的第一篇博客,咱們直奔主題。先上個效果圖

在android中自定義PopupWindow:

1、首先定義好你想要顯示的窗口的布局文件,再實例化一個View對象:窗口布局可靈活變化,dialog_layout.xml代碼如下:

android:id="@+id/dialog_layout"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:background="@drawable/dialog_bg"

android:orientation="vertical"

android:padding="5dp" >

android:layout_width="fill_parent"

android:layout_height="0dp"

android:text="@string/tip"

android:gravity="center"

android:textSize="21sp"

android:layout_weight="0.7"

android:textColor="#000000"/>

android:id="@+id/horiz"

android:layout_width="fill_parent"

android:layout_height="0.5dp"

android:background="#000000" />

android:layout_width="fill_parent"

android:layout_height="0dp"

android:layout_weight="0.2"

android:orientation="horizontal" >

android:id="@+id/btn_sure"

android:layout_width="0dp"

android:layout_height="fill_parent"

android:background="@drawable/dialog_btn"

android:gravity="center"

android:text="@string/sure"

android:textColor="#000000"

android:layout_weight="1"

android:textSize="20sp" />

android:id="@+id/vertical"

android:layout_width="0.5dp"

android:layout_height="fill_parent"

android:background="#000000" />

android:id="@+id/btn_cancel"

android:layout_width="0dp"

android:layout_height="fill_parent"

android:background="@drawable/dialog_btn"

android:gravity="center"

android:text="@string/cancel"

android:textColor="#000000"

android:layout_weight="1"

android:textSize="20sp" />

當然這個僅供參考,我在布局的時候之所以用了很多?android:layout_weight 屬性,主要是為了在不同分辨率屏幕上有相同的顯示效果。

實例化 View 的代碼如下:

LayoutInflater inflater = LayoutInflater.from(AnimationAlphaActivity.this);

View view = inflater.inflate(R.layout.dialog_layout,(ViewGroup) findViewById(R.id.dialog_layout));

2、接著實例化一個PopupWindow,代碼如下:

DisplayMetrics dm = new DisplayMetrics();

getWindowManager().getDefaultDisplay().getMetrics(dm);

popupWindow = new PopupWindow(view, dm.widthPixels/4*3, dm.widthPixels/2);

這里會根據不同屏幕確定對話框的大小。

3、設置動畫效果,首先定義對話框顯示的動畫效果,在 res 文件夾下面新建一個名為 anim 的文件夾(養成良好的習慣),在里面定義對話框顯示時的動畫 dialog_show_anim.xml ,參考代碼如下:

android:duration="200"

android:fromXScale="0.0"

android:fromYScale="0.0"

android:toXScale="1.0"

android:toYScale="1.0"

android:pivotX="50%"

android:pivotY="50%"/>

附加說明:安卓提供的動畫有四種,分別是translate(位移變換),alpha(透明漸變),rotate(旋轉變換),scale(大小變換)。

fromYScale[float] ?為動畫起始時,X、Y坐標上的伸縮尺寸;0.0表示收縮到沒有 ;1.0表示正常無伸縮. 值小于1.0表示收縮. 值大于1.0表示放大toXScale [float];

toYScale[float] ? ?為動畫結束時,X、Y坐標上的伸縮尺寸pivotX[float];

pivotY[float] ? ? ?為動畫相對于物件的X、Y坐標的開始位置屬性值說明:從0%-100%中取值,50%為物件的X或Y方向坐標上的中點位置;

類似的,我們還要定義一個讓對話框消失的動畫,效果跟上面的相反,上面是從 0 的比例放大到 1 的比例。消失則是從1 的比例縮小到 0(消失)。

dialog_dissmiss_anim.xml 代碼如下:

android:duration="200"

android:fromXScale="1.0"

android:fromYScale="1.0"

android:pivotX="50%"

android:pivotY="50%"

android:toXScale="0.0"

android:toYScale="0.0" />

兩個都寫好之后我們要在 value 目錄下的style.xml(沒有的話新建一個)定義對話框的動畫類型,以便于代碼引用,style.xml 參考代碼如下:

4、代碼中調用PopupWindow 的setAnimationStyle 方法即可設定動畫。參考代碼如下:

popupWindow.setAnimationStyle(R.style.dialog_anim);

總結:1、對于PopupWindow 自定義顯示的內容我們可以在實例化 PopupWindow 的時候傳入自己做好的界面布局。

2、對于動畫,我們先定義兩個xml文件分別控制顯示動畫及消失動畫,最后在style.xml文件中將兩個動畫合二為一給代碼調用。

3、對于PopupWindow顯示的位置可以參考PopupWindow的 show** 方法。

轉載請注明出處。

技術因分享而強大。

總結

以上是生活随笔為你收集整理的android 自定义弹窗diss,Android中自定义PopupWindow,动态弹窗。的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。