欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android自定義加載框效果

 更新時間:2021年08月18日 17:03:02   作者:臥龍躍馬  
這篇文章主要為大家詳細介紹了Android自定義加載框效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了Android自定義加載框效果的具體代碼,供大家參考,具體內(nèi)容如下

效果圖

菊花圖標(mipmap-xxhdpi)

加載框圓角背景drawable

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

布局文件

<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto">

    <data>

    </data>

    <androidx.constraintlayout.widget.ConstraintLayout
        android:orientation="vertical"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/bg_message_dialog"
        android:minWidth="132dp"
        android:minHeight="100dp"
        android:padding="15dp">

        <ImageView
            android:id="@+id/iv"
            android:layout_width="35dp"
            android:layout_height="35dp"
            android:src="@mipmap/ic_loading"
            app:layout_constraintTop_toTopOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintBottom_toTopOf="@id/tv"/>

        <TextView
            android:id="@+id/tv"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:textSize="12sp"
            android:textColor="@color/white"
            android:layout_marginTop="15dp"
            android:text="@string/loading"
            android:lineSpacingExtra="8dp"
            android:gravity="center_horizontal"
            app:layout_constraintTop_toBottomOf="@id/iv"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintBottom_toBottomOf="parent"
            />
    </androidx.constraintlayout.widget.ConstraintLayout>
</layout>

LoadingDialog.kt

package com.lzk.libcommon.widget

import android.animation.ObjectAnimator
import android.animation.ValueAnimator
import android.graphics.Color
import android.graphics.drawable.ColorDrawable
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.view.Window
import android.view.animation.LinearInterpolator
import androidx.databinding.DataBindingUtil
import androidx.fragment.app.DialogFragment
import androidx.fragment.app.FragmentManager
import com.blankj.utilcode.util.LogUtils
import com.lzk.libcommon.R
import com.lzk.libcommon.databinding.ViewLoadingDialogBinding

/**
 * @Author: LiaoZhongKai
 * @Date: 2021/7/14 9:04
 * @Description: 加載框
 */
class LoadingDialog: DialogFragment() {

    private var mTips: String? = null
    private lateinit var mLoadingDialogBinding: ViewLoadingDialogBinding
    private lateinit var mAnimation: ObjectAnimator

    override fun onStart() {
        super.onStart()
        //去掉DialogFragment外部的背景色
        dialog?.window?.apply {
            attributes = attributes.apply {
            //======================這里設置背景陰影透明度===============
            //======================0是全透明===========================
                dimAmount = 0.0f
            }
        }
    }

    override fun onCreateView(
        inflater: LayoutInflater,
        container: ViewGroup?,
        savedInstanceState: Bundle?
    ): View {
        mLoadingDialogBinding = DataBindingUtil.inflate(inflater, R.layout.view_loading_dialog,container,false)

        dialog?.apply {
            requestWindowFeature(Window.FEATURE_NO_TITLE)
            setCanceledOnTouchOutside(false)
            window?.apply {
                //去掉DialogFragment內(nèi)部的背景色
                setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))
                //去掉Padding
                decorView.setPadding(0,0,0,0)
            }
        }
        return mLoadingDialogBinding.root
    }

    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
        super.onViewCreated(view, savedInstanceState)
        rotate()
        setTips(mTips)
    }

    private fun rotate(){
        mAnimation = ObjectAnimator.ofFloat(mLoadingDialogBinding.iv,"rotation",360f).apply {
            repeatCount = ObjectAnimator.INFINITE
            repeatMode = ValueAnimator.RESTART
            interpolator = LinearInterpolator()
            duration = 1000
        }
        mAnimation.start()
    }

    override fun onDestroyView() {
        super.onDestroyView()
        mAnimation.cancel()
    }

    //顯示
    fun showDialog(fragmentManager: FragmentManager, msg: String? = null){
        mTips = msg
        if (isVisible){
            dismiss()
        }
        show(fragmentManager,"")
    }
    //隱藏
    fun dismissDialog(){
        if (isAdded){
            dismiss()
            mTips = null
        }
    }

    /**
     * 設置加載提示文字
     */
    private fun setTips(msg: String?): LoadingDialog{
        mLoadingDialogBinding.tv.visibility = if (msg.isNullOrEmpty()) View.GONE else View.VISIBLE
        if (!msg.isNullOrEmpty()){
            mLoadingDialogBinding.tv.text = msg
        }
        return this
    }
}

基類封裝

abstract class BaseVMActivity<T: ViewDataBinding,VM: BaseViewModel> : AppCompatActivity(){
 private var mLoadingDialog: LoadingDialog? = null

   override fun onDestroy() {
        super.onDestroy()
        mLoadingDialog?.dismissDialog()
        mLoadingDialog = null
    }


 /**
     * 顯示加載彈框
     */
    fun showLoadingDialog(msg: String? = null){
        mLoadingDialog = LoadingDialog()
        mLoadingDialog!!.showDialog(supportFragmentManager,msg)
    }

    /**
     * 隱藏加載彈框
     */
    fun dismissLoadingDialog(){
        mLoadingDialog?.dismissDialog()
    }
}

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • android將Bitmap對象保存到SD卡中的方法

    android將Bitmap對象保存到SD卡中的方法

    這篇文章主要介紹了android將Bitmap對象保存到SD卡中的方法,涉及Android讀寫SD卡數(shù)據(jù)的方法,需要的朋友可以參考下
    2015-04-04
  • Android模仿知乎的回答詳情頁的動畫效果

    Android模仿知乎的回答詳情頁的動畫效果

    這篇文章主要介紹了Android模仿“知乎”的回答詳情頁的動畫效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-02-02
  • Android自定義view仿iOS彈出框效果

    Android自定義view仿iOS彈出框效果

    這篇文章主要為大家詳細介紹了Android自定義view仿iOS彈出框效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-06-06
  • Android OkHttp Post上傳文件并且攜帶參數(shù)實例詳解

    Android OkHttp Post上傳文件并且攜帶參數(shù)實例詳解

    這篇文章主要介紹了Android OkHttp Post上傳文件并且攜帶參數(shù)實例詳解的相關資料,需要的朋友可以參考下
    2017-03-03
  • Android?MaterialAlertDialogBuilder修改按鈕屬性

    Android?MaterialAlertDialogBuilder修改按鈕屬性

    這篇文章主要介紹了Android?MaterialAlertDialogBuilder修改按鈕屬性實現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-11-11
  • android通過bitmap生成新圖片關鍵性代碼

    android通過bitmap生成新圖片關鍵性代碼

    android通過bitmap生成新圖片具體實現(xiàn)如下,感興趣的朋友可以參考下哈,希望對你有所幫助
    2013-06-06
  • 基于DownloadManager的簡單下載器編寫小結

    基于DownloadManager的簡單下載器編寫小結

    Android自帶的DownloadManager是一個很好的下載文件的工具。該類在API level 9之后出現(xiàn),它已經(jīng)幫我們處理了下載失敗、重新下載等功能,整個下載過程全部交給系統(tǒng)負責,不需要我們過多的處理,非常的nice。關鍵的是用起來也很簡單,稍微封裝一下就可以幾句話搞定下載
    2017-12-12
  • android獲取當前手機號示例程序

    android獲取當前手機號示例程序

    這篇文章主要介紹了android如何獲取當前手機號的方法,大家參考使用吧
    2013-11-11
  • Android加載圖片內(nèi)存溢出問題解決方法

    Android加載圖片內(nèi)存溢出問題解決方法

    這篇文章主要介紹了Android加載圖片內(nèi)存溢出問題解決方法,本文講解使用BitmapFactory.Options解決內(nèi)存溢出問題,需要的朋友可以參考下
    2015-06-06
  • Android Handler使用案例詳解

    Android Handler使用案例詳解

    這篇文章主要介紹了Android Handler使用案例詳解,本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-08-08

最新評論