Android仿微信進(jìn)度彈出框的實現(xiàn)方法
MainActivity:
package com.ruru.dialogproject; import android.app.Activity; import android.os.Bundle; import android.view.View; public class MainActivity extends Activity implements Runnable { LoadingDialog dialog; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); findViewById(R.id.btn_name).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { dialog = new LoadingDialog(MainActivity.this); dialog.setCanceledOnTouchOutside(false); dialog.show(); new Thread(MainActivity.this).start(); } }); } public void run() { try { Thread.sleep(5000); dialog.dismiss(); } catch (InterruptedException e) { e.printStackTrace(); } } }
activity_main:
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.ruru.dialogproject.MainActivity"> <Button android:id="@+id/btn_name" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Hello World!" /> </RelativeLayout>
LoadingDialog:
package com.ruru.dialogproject; import android.app.Dialog; import android.content.Context; import android.os.Bundle; import android.widget.LinearLayout; import android.widget.TextView; /** * Created by 27c1 on 2017/1/4. */ public class LoadingDialog extends Dialog { private TextView tv; /** * style很關(guān)鍵 */ public LoadingDialog(Context context) { super(context, R.style.loadingDialogStyle); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.dialog_loading); tv = (TextView) findViewById(R.id.tv); tv.setText("正在上傳....."); LinearLayout linearLayout = (LinearLayout) this.findViewById(R.id.LinearLayout); linearLayout.getBackground().setAlpha(210); } }
dialog_loading:
<?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:background="@android:color/transparent" android:orientation="vertical"> <LinearLayout android:id="@+id/LinearLayout" android:layout_width="160dp" android:layout_height="160dp" android:background="@drawable/yuanjiao" android:gravity="center" android:orientation="vertical"> <ProgressBar android:id="@+id/progressBar1" style="?android:attr/progressBarStyleInverse" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:background="@android:color/transparent" /> <TextView android:id="@+id/tv" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:paddingTop="10dp" android:textColor="#fff" /> </LinearLayout> </LinearLayout>
R.style.loadingDialogStyle:
<style name="loadingDialogStyle" parent="android:Theme.Dialog"> <item name="android:windowBackground">@android:color/transparent</item><!--設(shè)置dialog的背景--> <item name="android:windowFrame">@null</item><!--Dialog的windowFrame框為無--> <item name="android:windowNoTitle">true</item><!--是否顯示title--> <item name="android:windowIsFloating">true</item><!--是否浮現(xiàn)在activity之上--> <item name="android:windowIsTranslucent">true</item><!--是否半透明--> <item name="android:windowContentOverlay">@null</item><!--是否半透明--> <item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item><!-- 對話框是否有遮蓋 --> <item name="android:backgroundDimEnabled">false</item><!--背景是否模糊顯示--> <item name="android:backgroundDimAmount">0.6</item><!--背景的灰度--> </style>
drawable-yuanjiao:
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <solid android:color="#86222222" /> <corners android:bottomLeftRadius="10dp" android:bottomRightRadius="10dp" android:topLeftRadius="10dp" android:topRightRadius="10dp" /> </shape>
效果:
關(guān)于樣式:
<item name="android:windowFrame">@null</item> :Dialog的windowFrame框為無 <item name="android:windowIsFloating">true</item>:是否浮現(xiàn)在activity之上 <item name="android:windowIsTranslucent">false</item>:是否半透明 <item name="android:windowNoTitle">true</item>:是否顯示title <item name="android:windowBackground">@drawable/dia_bg</item>:設(shè)置dialog的背景 <item name="android:backgroundDimEnabled">true</item>背景是否模糊顯示 <item name="android:backgroundDimAmount">0.6</item>背景的灰度
Window attributes屬性詳解
顏色為:#393939
以上所述是小編給大家介紹的Android仿微信進(jìn)度彈出框效果,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
- Android 多種簡單的彈出框樣式設(shè)置代碼
- Android實現(xiàn)可輸入數(shù)據(jù)的彈出框
- Android使用Dialog風(fēng)格彈出框的Activity
- react-native 封裝選擇彈出框示例(試用ios&android)
- Android中自定義PopupWindow實現(xiàn)彈出框并帶有動畫效果
- Android 仿微信朋友圈點贊和評論彈出框功能
- android自定義彈出框樣式的實現(xiàn)方法
- 高仿IOS的Android彈出框
- Android編程實現(xiàn)仿QQ發(fā)表說說,上傳照片及彈出框效果【附demo源碼下載】
- Android自定義彈出框的方法
相關(guān)文章
Android錄音功能的實現(xiàn)以及踩坑實戰(zhàn)記錄
在Android 開發(fā)過程中,有些功能是通用的,或者是多個業(yè)務(wù)方都需要使用的,下面這篇文章主要給大家介紹了關(guān)于Android錄音功能的實現(xiàn)以及踩坑的相關(guān)資料,需要的朋友可以參考下2022-06-06Android開發(fā)之FloatingActionButton懸浮按鈕基本使用、字體、顏色用法示例
這篇文章主要介紹了Android開發(fā)之FloatingActionButton懸浮按鈕基本使用、字體、顏色用法,結(jié)合實例形式分析了Android FloatingActionButton懸浮按鈕的基本功能、布局、使用方法及操作注意事項,需要的朋友可以參考下2019-03-03實現(xiàn)輪轉(zhuǎn)廣告帶底部指示的自定義ViewPager控件
在項目中經(jīng)常需要使用輪轉(zhuǎn)廣告的效果,在android-v4版本中提供的ViewPager是一個很好的工具,而一般我們使用Viewpager的時候,都會選擇在底部有一排指示物指示當(dāng)前顯示的是哪一個page,下面我們就做這個功能的實現(xiàn)2013-11-11Android三方依賴沖突Gradle中exclude的使用
這篇文章主要介紹了Android三方依賴沖突Gradle中exclude的使用,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下2022-09-09Android實現(xiàn)讀寫JSON數(shù)據(jù)的方法
這篇文章主要介紹了Android實現(xiàn)讀寫JSON數(shù)據(jù)的方法,以完整實例形式分析了Android解析及生成json數(shù)據(jù)的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-10-10Android ListView彈性效果的實現(xiàn)方法
這篇文章主要為大家詳細(xì)介紹了Android ListView彈性效果的實現(xiàn)方法,感興趣的小伙伴們可以參考一下2016-05-05Android實現(xiàn)TextView中文字鏈接的4種方式介紹及代碼
Android實現(xiàn)TextView中文字鏈接的方式有很多種;總結(jié)起來大概有4種:用Spannable或?qū)崿F(xiàn)它的類,如SpannableString來格式,部分字符串等等,感興趣的你可以參考下2013-02-02