国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

android自定義ProgressDialog加載效果

2019-12-12 02:37:04
字體:
來源:轉載
供稿:網友

用來記錄自己所用到的知識

前兩天在做項目的時候發現有時候在訪問網絡數據的時候由于后臺要做的工作較多,給我們返回數據的時間較長,所以老大叫我加了一個加載中的logo圖用來提高用戶體驗.

于是就在網上找了許多大神寫的案例,再結合自己的情況完成了一個Loading工具類

效果:

ok,現在來說說怎么做的

先自定義一個類繼承ProgressDialog

public class Loading_view extends ProgressDialog {public Loading_view(Context context) {super(context);}public Loading_view(Context context, int theme) {super(context, theme);}@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);init(getContext());}private void init(Context context) {setCancelable(true);setCanceledOnTouchOutside(false);setContentView(R.layout.loading);//loading的xml文件WindowManager.LayoutParams params = getWindow().getAttributes();params.width = WindowManager.LayoutParams.WRAP_CONTENT;params.height = WindowManager.LayoutParams.WRAP_CONTENT;getWindow().setAttributes(params);}@Overridepublic void show() {//開啟super.show();}@Overridepublic void dismiss() {//關閉super.dismiss();}}

設置loading布局文件

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="100dp"android:layout_height="100dp"android:layout_gravity="center_horizontal"android:background="@drawable/shape_dialog_bg"http://背景色android:layout_centerInParent="true"android:orientation="vertical"><RelativeLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginTop="10dp"><ProgressBarandroid:id="@+id/pb_load"android:layout_width="65dp"android:layout_height="65dp"android:indeterminateDrawable="@drawable/progressbar"http://加載圈的樣式android:layout_centerInParent="true"/></RelativeLayout><TextViewandroid:id="@+id/tv_load_dialog"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="center_horizontal"android:text="加載中..."android:textColor="#9a9b98"android:textSize="12sp"/></LinearLayout>

背景色(可自行調整)

<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android" ><corners android:radius="8dp" /><solid android:color="#88000000" /></shape>

加載圈樣式(可自行調整)

<animated-rotatexmlns:android="http://schemas.android.com/apk/res/android"android:pivotX="50%" android:pivotY="50%"android:fromDegrees="0"android:toDegrees="720"><shapeandroid:shape="ring"android:innerRadiusRatio="3"android:thicknessRatio="15"android:useLevel="false"><gradientandroid:type="sweep"android:useLevel="false"android:startColor="#55c6c6c6"android:centerColor="#c6c6c6"android:centerY="0.50"android:endColor="#c6c6c6" /></shape></animated-rotate>

ok可以使用了

public class MainActivity extends AppCompatActivity {private Loading_view loading;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}public void loding(View v){//點擊加載并按鈕模仿網絡請求loading = new Loading_view(this,R.style.CustomDialog);loading.show();new Handler().postDelayed(new Runnable() {//定義延時任務模仿網絡請求@Overridepublic void run() {loading.dismiss();//3秒后調用關閉加載的方法}}, 3000);}}

為什么會這樣,不懂然后就去百度,google然后在一大神的文章里發現了,但是我在寫這文章的時候才發現當初沒有保存大神的地址再也找不到了

原來需要在創建自定義的loading 的時候在傳入 new Loading_view(this,R.style.CustomDialog);樣式

<style name="CustomDialog" parent="Theme.AppCompat.Dialog"><item name="android:backgroundDimEnabled">false</item><item name="android:windowBackground">@android:color/transparent</item></style>

ok 再來一次

ok成功!

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 雷波县| 海南省| 兴城市| 新乡县| 利津县| 乌鲁木齐县| 乌兰浩特市| 沧州市| 嘉峪关市| 淅川县| 襄汾县| 武宁县| 高州市| 安徽省| 菏泽市| 阳高县| 什邡市| 扬中市| 大余县| 大兴区| 余庆县| 广宗县| 浠水县| 大新县| 申扎县| 海宁市| 昌乐县| 湖南省| 南康市| 龙游县| 化德县| 阿克| 犍为县| 沂水县| 灵璧县| 双辽市| 枣阳市| 沈丘县| 金沙县| 永嘉县| 旌德县|