android学习之路4 进度条

本文将从几个方面来讲解进度条的设置。

1.条形进度条 :不同图片的方式来实现

<ol start="1" class="dp-xml" style="padding: 0px; border: none; list-style-position: initial; list-style-image: initial; color: rgb(92, 92, 92); font-family: Consolas, 'Courier New', Courier, mono, serif; line-height: 26px; margin: 0px 0px 1px 45px !important;"><li class="alt" style="border-style: none none none solid; border-left-width: 3px; border-left-color: rgb(108, 226, 108); list-style: decimal-leading-zero outside; color: inherit; line-height: 18px; margin: 0px !important; padding: 0px 3px 0px 10px !important;"><span style="background-color: inherit; color: black;">  </span></li></ol>
    第一步:在xml中
<ProgressBar android:layout_width="fill_parent"  
        android:layout_height="wrap_content"   
        android:max="100"   
        android:id="@+id/bar"  
        style="@android:style/Widget.ProgressBar.Horizontal"/>  
 第二步:在activity中
 final ProgressBar bar = (ProgressBar) findViewById(R.id.bar);  
        // 创建一个复杂更新进度的Handler  
        final Handler handler = new Handler() {  
            @Override  
            public void handleMessage(Message msg) {  
                if (msg.what == 0x111) {  
                    bar.setProgress(progressStatus);  
                }  
            }  
        };  
        // 启动线程来执行任务  
        new Thread() {  
            public void run() {  
                while (progressStatus < 100) {  
                    // 获取耗时的完成百分比  
                    progressStatus = doWork();  
                    Message m = new Message();  
                    m.what = 0x111;  
                    // 发送消息到Handler  
                    handler.sendMessage(m);  
                }  
            }  
        }.start();  
    }  
      
    //模拟一个耗时的操作  
    private int doWork() {  
        data[hasData++] = (int) (Math.random() * 100);  
        try {  
            Thread.sleep(100);  
        } catch (Exception e) {  
            e.printStackTrace();  
        }  
        return hasData;  
    }  

2 圆形进度条 

这里讲自定义的圆形进度条,通过给进度条图片设置动画来实现


当然大家也可以选用更加漂亮的图片。

 <ProgressBar
        android:id="@+id/blogContentPro"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:indeterminateDrawable="@drawable/progressbar_large"
        android:visibility="visible" />


progressbar_large.xml

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

3 自定义的 带文字的diloge类的进度条


第一步:创建自定义LoadingDialog 加载对应的布局文件

 <pre style="background-color: rgb(255, 255, 255); font-family: 宋体; font-size: 9pt;"><pre name="code" class="java"> public static Dialog creatDialog(final Context context,final String text){
            final Dialog dialog = new Dialog(context,R.style.new_circle_progress);
            dialog.setContentView(R.layout.layout_progressbar);
            dialog.getWindow().getAttributes().gravity = Gravity.CENTER;
            TextView textView = (TextView)dialog.findViewById(R.id.progress_msg);
            textView.setText(text);
            return dialog;
        }


 
 
 第二步 :创建布局文件layout_progressbar。xmL 

<pre name="code" class="java"><?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              xmlns:tools="http://schemas.android.com/tools"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:orientation="vertical"
              android:background="@mipmap/loding_bg"
    >

    <ProgressBar
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_margin="5dp"
        android:indeterminate="false"
        android:indeterminateDrawable="@drawable/ic_circle_progress"
        />
    <TextView
        android:id="@+id/progress_msg"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:gravity="center"
        android:layout_marginLeft="4dp"
        android:layout_marginRight="4dp"
        android:layout_marginBottom="8dp"
        tools:text="@string/progress_text"
        android:textSize="@dimen/title_size"
        android:textColor="#ffffff"
        android:textStyle="bold"
       />

</LinearLayout>  


 

第三步:设置Style 

  <pre name="code" class="java"> <style name="new_circle_progress" parent="@android:style/Theme.Dialog">
        <item name="android:indeterminateDrawable">@mipmap/commit_progress</item>
        <item name="android:windowNoTitle">true</item><!-- 设置无标题 -->
        <item name="android:windowFrame">@null</item><!--边框-->
        <item name="android:windowIsFloating">true</item><!--是否浮现在activity之上-->
        <item name="android:windowIsTranslucent">true</item><!--半透明-->
        <item name="android:windowBackground">@color/transparent</item><!--背景透明-->
        <item name="android:backgroundDimEnabled">false</item>
        <item name="android:windowContentOverlay">@null</item>
    </style>

 第四步;设置动画 ic_circle_progress.xml 

<?xml version="1.0" encoding="utf-8"?>
<layer-list
    xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <rotate android:drawable="@mipmap/commit_progress" android:fromDegrees="0.0" android:toDegrees="360.0" android:pivotX="50.0%" android:pivotY="50.0%" />
    </item>
</layer-list>





深度学习是机器学习的一个子领域,它基于人工神经网络的研究,特别是利用多层次的神经网络来进行学习和模式识别。深度学习模型能够学习数据的高层次特征,这些特征对于图像和语音识别、自然语言处理、医学图像分析等应用至关重要。以下是深度学习的一些关键概念和组成部分: 1. **神经网络(Neural Networks)**:深度学习的基础是人工神经网络,它是由多个层组成的网络结构,包括输入层、隐藏层和输出层。每个层由多个神经元组成,神经元之间通过权重连接。 2. **前馈神经网络(Feedforward Neural Networks)**:这是最常见的神经网络类型,信息从输入层流向隐藏层,最终到达输出层。 3. **卷积神经网络(Convolutional Neural Networks, CNNs)**:这种网络特别适合处理具有网格结构的数据,如图像。它们使用卷积层来提取图像的特征。 4. **循环神经网络(Recurrent Neural Networks, RNNs)**:这种网络能够处理序列数据,如时间序列或自然语言,因为它们具有记忆功能,能够捕捉数据中的时间依赖性。 5. **长短期记忆网络(Long Short-Term Memory, LSTM)**:LSTM 是一种特殊的 RNN,它能够学习长期依赖关系,非常适合复杂的序列预测任务。 6. **生成对抗网络(Generative Adversarial Networks, GANs)**:由两个网络组成,一个生成器和一个判别器,它们相互竞争,生成器生成数据,判别器评估数据的真实性。 7. **深度学习框架**:如 TensorFlow、Keras、PyTorch 等,这些框架提供了构建、训练和部署深度学习模型的工具和库。 8. **激活函数(Activation Functions)**:如 ReLU、Sigmoid、Tanh 等,它们在神经网络中用于添加非线性,使得网络能够学习复杂的函数。 9. **损失函数(Loss Functions)**:用于评估模型的预测与真实值之间的差异,常见的损失函数包括均方误差(MSE)、交叉熵(Cross-Entropy)等。 10. **优化算法(Optimization Algorithms)**:如梯度下降(Gradient Descent)、随机梯度下降(SGD)、Adam 等,用于更新网络权重,以最小化损失函数。 11. **正则化(Regularization)**:技术如 Dropout、L1/L2 正则化等,用于防止模型过拟合。 12. **迁移学习(Transfer Learning)**:利用在一个任务上训练好的模型来提高另一个相关任务的性能。 深度学习在许多领域都取得了显著的成就,但它也面临着一些挑战,如对大量数据的依赖、模型的解释性差、计算资源消耗大等。研究人员正在不断探索新的方法来解决这些问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值