<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
開發過程中經常用到載入圈,特別是車機開發由於外設不同很多操作響應的等待時長經常要用到不同的載入圈。
首先,直接上菊花效果圖,這是我直接從專案裡面擷取下來的。
核心程式碼
import android.app.Dialog; import android.content.Context; import android.view.Gravity; import android.view.LayoutInflater; import android.view.View; import android.view.Window; import android.view.WindowManager; import android.view.animation.Animation; import android.view.animation.AnimationUtils; import android.widget.ImageView; import android.widget.RelativeLayout; import android.widget.TextView; public class CircularLoading { /** * 顯示Dialog * @param context 上下文物件 * @param msg 提示內容 * @param isCancelable 是否可以點選取消 * @return */ public static Dialog showLoadDialog(Context context, String msg, boolean isCancelable) { LayoutInflater inflater = LayoutInflater.from(context); View v = inflater.inflate(R.layout.circular_loading, null); RelativeLayout layout = (RelativeLayout) v.findViewById(R.id.dialog_bg); // main.xml中的ImageView ImageView loadImage = (ImageView) v.findViewById(R.id.load_iv); TextView pointTextView = (TextView) v.findViewById(R.id.point_tv); // 載入動畫 Animation hyperspaceJumpAnimation = AnimationUtils.loadAnimation(context, R.anim.rotating_animation); // 使用ImageView顯示動畫 loadImage.startAnimation(hyperspaceJumpAnimation); pointTextView.setText(msg); Dialog loadingDialog = new Dialog(context, R.style.TransDialogStyle); loadingDialog.setContentView(layout); loadingDialog.setCancelable(isCancelable); loadingDialog.setCanceledOnTouchOutside(false); Window window = loadingDialog.getWindow(); WindowManager.LayoutParams lp = window.getAttributes(); lp.width = WindowManager.LayoutParams.WRAP_CONTENT; lp.height = WindowManager.LayoutParams.WRAP_CONTENT; window.setGravity(Gravity.CENTER); window.setAttributes(lp); window.setWindowAnimations(R.style.PopWindowAnimStyle); loadingDialog.show(); return loadingDialog; } /** * 關閉dialog */ public static void closeDialog(Dialog mCircularLoading) { if (mCircularLoading != null && mCircularLoading.isShowing()) { mCircularLoading.dismiss(); } } }
佈局檔案
circular_loading.xml
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/dialog_bg" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="#000000" android:minHeight="60dp" android:minWidth="150dp" android:orientation="horizontal" > <ImageView android:id="@+id/load_iv" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_centerVertical="true" android:layout_marginLeft="20dp" android:layout_marginStart="20dp" android:src="@drawable/dialog_loading_img" /> <TextView android:id="@+id/point_tv" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" android:layout_marginLeft="10dp" android:layout_marginTop="0dp" android:layout_toRightOf="@+id/load_iv" android:ellipsize="middle" android:singleLine="true" android:textSize="16sp" /> </RelativeLayout>
動畫
rotating_animation.xml
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" android:shareInterpolator="false"> <rotate android:duration="1000" android:fromDegrees="0" android:interpolator="@android:anim/linear_interpolator" android:pivotX="50%" android:pivotY="50%" android:repeatCount="-1" android:repeatMode="restart" android:toDegrees="360" />
dialog_show.xml
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <alpha android:fromAlpha="0" android:toAlpha="1.0"/> </set>
dialog_hide.xml
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <alpha android:fromAlpha="1.0" android:toAlpha="0"/> </set>
Style
</style> <style name="TransDialogStyle" parent="@android:style/Theme.Dialog"> <item name="android:windowFrame">@null</item> <item name="android:windowIsFloating">true</item> <item name="android:windowIsTranslucent">true</item> <item name="android:windowNoTitle">true</item> <item name="android:background">@android:color/transparent</item> <item name="android:windowBackground">@android:color/transparent</item> <item name="android:backgroundDimEnabled">true</item> <item name="android:backgroundDimAmount">0.5</item> <item name="android:windowFullscreen">true</item> </style> </style> <style name="PopWindowAnimStyle"> <item name="android:windowShowAnimation">@anim/dialog_show</item> <item name="android:windowHideAnimation">@anim/dialog_hide</item> </style>
使用方法
//顯示 mCircularLoading = CircularLoading.showLoadDialog(Dvr_Activity_Main.this, "載入中...", true); //關閉 CircularLoading.closeDialog(mCircularLoading);
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援it145.com。
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45