当前位置: 移动技术网 > IT编程>移动开发>Android > Android仿微信网络加载弹出框

Android仿微信网络加载弹出框

2019年07月23日  | 移动技术网IT编程  | 我要评论

下一届总理,龙华百客门,英语速成方法

本文实例为大家分享了android仿微信网络加载弹出框的具体代码,供大家参考,具体内容如下

没有饿了么的动画效果好看,但是,特别适用,拿来就用!

看一下效果图

图片素材

好了,其实很简单,就是一个自定义dialog的控件而已

1. 自定义view的style样式

<resources>

  <!-- base application theme. -->
  <style name="apptheme" parent="theme.appcompat.light.darkactionbar">
    <!-- customize your theme here. -->
    <item name="colorprimary">@color/colorprimary</item>
    <item name="colorprimarydark">@color/colorprimarydark</item>
    <item name="coloraccent">@color/coloraccent</item>
  </style>
  <!-- 自定义dialog的样式 -->
  <style name="customdialog">
    <item name="android:windowframe">@null</item><!--边框-->
    <item name="android:windowisfloating">true</item><!--是否浮现在activity之上-->
    <item name="android:windowistranslucent">false</item><!--半透明-->
    <item name="android:windownotitle">true</item><!--无标题-->
    <item name="android:windowbackground">@drawable/dialog_custom_bg</item><!--背景透明-->
    <item name="android:backgrounddimenabled">false</item><!--模糊-->
    <item name="android:backgrounddimamount">0.6</item>
  </style>


</resources>

2.dialog_custom_bg 加载动画shape背景图(drawable文件夹下)

<shape xmlns:android="http://schemas.android.com/apk/res/android"
  android:shape="rectangle">
  <solid android:color="#ff333333" />
  <corners android:radius="5dp" />
</shape>

3.indeterminate_drawable 进度条模糊背景图(drawable文件夹下)

<?xml version="1.0" encoding="utf-8"?>
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
  android:drawable="@drawable/loading"
  android:fromdegrees="0"
  android:pivotx="50%"
  android:pivoty="50%"
  android:todegrees="360">
</rotate>

4.加载对话框的背景

<!-- 加载对话框布局 -->
<linearlayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:gravity="center"
  android:orientation="horizontal"
  android:padding="10dp">

  <progressbar
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:indeterminatedrawable="@drawable/indeterminate_drawable"
    android:indeterminateduration="1800" />

  <textview
    android:id="@+id/tvcontent"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:paddingleft="10dp"
    android:paddingright="10dp"
    android:text="加载中"
    android:textcolor="#ffffff"
    android:textsize="14sp" />

</linearlayout>

5.customdialog自定义控件

public class customdialog extends dialog {
  private string content;

  public customdialog(context context, string content) {
    super(context, r.style.customdialog);
    this.content=content;
    initview();
  }

  @override
  public boolean onkeydown(int keycode, keyevent event) {
    switch (keycode){
      case keyevent.keycode_back:
        if(customdialog.this.isshowing())
          customdialog.this.dismiss();
        break;
    }
    return true;
  }

  private void initview(){
    setcontentview(r.layout.dialog_view);
    ((textview)findviewbyid(r.id.tvcontent)).settext(content);
    setcanceledontouchoutside(true);
    windowmanager.layoutparams attributes = getwindow().getattributes();
    attributes.alpha=0.8f;
    getwindow().setattributes(attributes);
    setcancelable(false);
  }
}

6.activity中直接调用

customdialog customdialog = new customdialog(this, "正在加载...");
customdialog.show();//显示,显示时页面不可点击,只能点击返回
customdialog.dismiss();//消失

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持移动技术网。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网