Xamarin.Android 過度頁面 正在加載


最近在使用Xamarin.Android進行開發,在加載數據時,需要一個正在加載界面。在網上查找了下,Xamarin.Android關於這方面的資料非常少。

但是想到Xamarin.Android和Android原生開發相似,在腦海中搜索那已經被遺忘的Android相關知識,最后終於解決。寫下這篇文章,給大家分享,

希望對使用Xamarin開發的人有些幫助。

下面是最終實現的效果:

 

首先是樣式布局:

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3     android:orientation="vertical"
 4     android:layout_width="match_parent"
 5     android:layout_height="match_parent"
 6     android:id="@+id/dialog_loading_view"
 7     android:gravity="center">
 8   <LinearLayout
 9     android:layout_width="150dp"
10     android:layout_height="110dp"
11     android:background="@drawable/corners_bg"
12     android:gravity="center"
13     android:orientation="vertical"
14     android:paddingBottom="10dp"
15     android:paddingLeft="21dp"
16     android:paddingRight="21dp"
17     android:paddingTop="10dp">
18   
19     <ProgressBar
20       android:id="@+id/progressBar1"
21       android:layout_width="35dp"
22       android:layout_height="35dp"
23       android:layout_gravity="center_horizontal"
24       android:indeterminateBehavior="repeat"
25       android:indeterminateDrawable="@drawable/dialog_loading"
26       android:indeterminateOnly="true" />
27 
28     <TextView
29       android:id="@+id/tipTextView"
30       android:layout_width="wrap_content"
31       android:layout_height="wrap_content"
32       android:layout_marginTop="15dp"
33       android:text="加載中..."
34       android:textColor="#f0f0f0"
35       android:textSize="15sp" />
36   </LinearLayout>
37 </LinearLayout>

中間部分,由於文字我沒做更改,所以就使用了圓角的樣式,當然可以使用9png作為背景

corners_bg.xml:

1 <?xml version="1.0" encoding="utf-8" ?>
2 <shape xmlns:android="http://schemas.android.com/apk/res/android">
3   <solid android:color="#000" />
4   <corners android:topLeftRadius="10dp"
5            android:topRightRadius="10dp"
6            android:bottomRightRadius="10dp"
7            android:bottomLeftRadius="10dp"/>
8 </shape>

轉圈的動畫效果是使用progressbar 具體的可以參考 ProcessBar深入研究 

旋轉動畫的文件dialog_loading.xml

<?xml version="1.0" encoding="utf-8"?>
<animated-rotate xmlns:android="http://schemas.android.com/apk/res/android"
    android:drawable="@mipmap/dialog_loading_img"
    android:pivotX="50%"
    android:pivotY="50%" />

 

在使用自定義Dialog時,黑色背景並沒有全部覆蓋整個LinearLayout布局,解決方式:使用自定義樣式

在Styles.xml添加

 

  <style name="Theme_Transparent" parent="@android:Theme.DeviceDefault.Light.Dialog">
    <item name="android:windowIsTranslucent">true</item>
    <item name="android:windowBackground">@android:color/transparent</item>
    <item name="android:windowContentOverlay">@null</item>
    <item name="android:windowNoTitle">true</item>
  </style>

在調用時,添加對應的樣式

LoadingDialog loadingDialog = new LoadingDialog(this,Resource.Style.Theme_Transparent);

以上就是頁面的部分代碼,如果寫的有問題,請在下方留言,若轉載,請注明出處。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM