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