广告
返回顶部
首页 > 资讯 > 移动开发 >AndroidProgressBar实现进度条效果
  • 301
分享到

AndroidProgressBar实现进度条效果

2024-04-02 19:04:59 301人浏览 安东尼
摘要

本文实例为大家分享了Android ProgressBar实现进度条的具体代码,供大家参考,具体内容如下 1.XML布局 <RelativeLayout xmlns:andr

本文实例为大家分享了Android ProgressBar实现进度条的具体代码,供大家参考,具体内容如下

1.XML布局

<RelativeLayout xmlns:android="Http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
 
    <TextView
        android:textSize="20sp"
        android:layout_marginTop="30dp"
        android:layout_centerHorizontal="true"
        android:text="设置当前进度固定不可拖动"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
 
    <LinearLayout
        android:id="@+id/full"
        android:layout_centerInParent="true"
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="60dp">
 
        <TextView
            android:id="@+id/progesss_value1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="#DDD"
            android:gravity="center"
            android:paddingBottom="8dp"
            android:paddingLeft="4dp"
            android:paddingRight="4dp"
            android:paddingTop="2dp"
            android:textColor="@android:color/white"
            android:textSize="12sp"
            android:text="20%" />
        <ProgressBar
            android:layout_gravity="center_horizontal"
            android:id="@+id/progesss1"
            style="@style/Widget.AppCompat.ProgressBar.Horizontal"
            android:layout_width="330dp"
            android:layout_height="wrap_content"
            android:background="@drawable/myprogressbar"
            android:indeterminateDrawable="@android:drawable/progress_indeterminate_horizontal"
            android:indeterminateOnly="false"
            android:max="100"
            android:maxHeight="50dp"
            android:minHeight="16dp"
            android:progress="20"
            android:progressDrawable="@drawable/myprogressbar" />
    </LinearLayout>
 
</RelativeLayout>

2.myprogressbar布局

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@android:id/background">
        <shape>
            <corners android:radius="10dip" />
            <gradient
                android:angle="45"
                android:endColor="#EAEAEA"
                android:startColor="#EAEAEA" />
        </shape>
    </item>
 
    <item android:id="@android:id/progress">
        <clip>
            <shape>
                <corners android:radius="10dip" />
                <gradient
                    android:angle="45"
                    android:centerColor="#2FD2B3"
                    android:endColor="#30C0D0"
                    android:startColor="#2EE28B" />
            </shape>
        </clip>
    </item>
 
</layer-list>

3.MainActivity

public class MainActivity extends AppCompatActivity {
 
    private ProgressBar progesss;
    private TextView progesssValue;
    private LinearLayout full;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
 
        progesss = (ProgressBar) findViewById(R.id.progesss1);
        progesssValue = (TextView) findViewById(R.id.progesss_value1);
        full = (LinearLayout) findViewById(R.id.full);
 
        initview();
    }
 
    private void initview() {
 
        progesss.setProgress(66);
        progesssValue.setText(new StringBuffer().append(progesss.getProgress()).append("%"));
 
        setPosWay1();
//        ToastUtil.showToast("进度为66");
//        Toast.makeText(this,"进度为:--66",Toast.LENGTH_SHORT).show();
 
        //        full.setOnTouchListener(new View.OnTouchListener() {
//
//            @Override
//            public boolean onTouch(View v, MotionEvent event) {
//                int w = getWindowManager().getDefaultDisplay().getWidth();
//                switch (event.getAction()) {
//                    case MotionEvent.ACTION_DOWN:
//                        x1 = (int) event.getRawX();
//                        progesss.setProgress(100 * x1 / w);
//                        setPos();
//                        break;
//                    case MotionEvent.ACTION_MOVE:
//                        x2 = (int) event.getRawX();
//                        dx = x2 - x1;
//                        if (Math.abs(dx) > w / 100) { //改变条件 调整进度改变速度
//                            x1 = x2; // 去掉已经用掉的距离, 去掉这句 运行看看会出现效果
//                            progesss.setProgress(progesss.getProgress() + dx * 100 / w);
//                            setPos();
//                        }
//                        break;
//                    case MotionEvent.ACTION_UP:
//                        break;
//                }
//                return true;
//            }
//        });
 
 
    }
 
 
    @Override
    public void onWindowFocusChanged(boolean hasFocus) {
        super.onWindowFocusChanged(hasFocus);
        if (hasFocus) {
            setPos();
        }
    }
    private void setPosWay1() {
        progesssValue.post(new Runnable() {
            @Override
            public void run() {
                setPos();
            }
        });
    }
 
    
    public void setPos() {
        int w = getWindowManager().getDefaultDisplay().getWidth();
        Log.e("w=====", "" + w);
        ViewGroup.MarginLayoutParams params = (ViewGroup.MarginLayoutParams) progesssValue.getLayoutParams();
        int pro = progesss.getProgress();
        int tW = progesssValue.getWidth();
        if (w * pro / 100 + tW * 0.3 > w) {
            params.leftMargin = (int) (w - tW * 1.1);
        } else if (w * pro / 100 < tW * 0.7) {
            params.leftMargin = 0;
        } else {
            params.leftMargin = (int) (w * pro / 100 - tW * 0.7);
        }
        progesssValue.setLayoutParams(params);
 
    }
}

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

--结束END--

本文标题: AndroidProgressBar实现进度条效果

本文链接: https://www.lsjlt.com/news/146490.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • AndroidProgressBar实现进度条效果
    本文实例为大家分享了Android ProgressBar实现进度条的具体代码,供大家参考,具体内容如下 1.XML布局 <RelativeLayout xmlns:andr...
    99+
    2022-11-13
  • JavaScript实现进度条效果
    本文实例为大家分享了JavaScript实现进度条效果的具体代码,供大家参考,具体内容如下 这次的效果图如下: 这个案例做起来不难,在我练习的时候,新知识点是使用window.ge...
    99+
    2022-11-12
  • Android Studio实现进度条效果
    本文实例为大家分享了Android Studio实现进度条效果的具体代码,供大家参考,具体内容如下 实验作业 要求一个进度条,进度随机 效果图 xml代码 <?x...
    99+
    2022-11-12
  • iOS实现音频进度条效果
    前几天开发群里有一个老兄问了一个开发问题,他们的需求是要做一个类似音频进度条的东西,我感觉设计还不错,于是就写了个小demo供大家参考,在争得了他的同意的情况下写下这篇文章。 话不多...
    99+
    2022-06-05
    ios 音频 进度条
  • Android实现下载进度条效果
    目录最终效果和对比vivo商店效果分析1 - 计算进度分析2 - 绘制圆角矩形解决方案分析3 - 绘制文字和交汇手势拓展完整代码具体使用最终效果和对比vivo商店效果 vivo应用商...
    99+
    2022-11-12
  • Vue实现进度条变化效果
    本篇文章用Vue简单实现进度条的变化,供大家参考,具体内容如下 先上一波效果图: 点击减后,每次减百分之十 减到百分之0后,减操作按钮隐藏 然后点击重头开始,恢复到初始状态 ...
    99+
    2022-11-12
  • vue实现动态进度条效果
    本文实例为大家分享了vue实现动态进度条效果的具体代码,供大家参考,具体内容如下 演示效果: 结构 progress/index.js const controller = ...
    99+
    2022-11-12
  • JavaScript实现圆形进度条效果
    本文实例为大家分享了JavaScript实现圆形进度条效果的具体代码,供大家参考,具体内容如下 <!DOCTYPE html> <html lang="en"...
    99+
    2022-11-12
  • Android实现蜗牛进度条效果
    友好的界面可以给用户留下深刻印象,为APP加分,今天实现的这个进度条,以蜗牛爬动的方式告诉用户当前进度,体验比较棒,这里分享一下。这里创建一组帧动画作为进度条的标志,如下:<?xml version="1.0" encodin...
    99+
    2023-05-31
    android 进度条 蜗牛
  • python进程+进度条实现赛跑效果
    利用python多进程+进度条实现一个有意思的小程序import random import time import sys from multiprocessing import ...
    99+
    2023-01-30
    进度条 进程 效果
  • Android ProgressBar怎么实现进度条效果
    这篇文章主要介绍了Android ProgressBar怎么实现进度条效果的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Android ProgressBar怎么实现进度条效果文章都会有所收...
    99+
    2023-06-30
  • C#使用winform实现进度条效果
    本文实例为大家分享了C#使用winform实现进度条效果的具体代码,供大家参考,具体内容如下 1.例子 2.点击查询按钮代码 private void button8_Click(...
    99+
    2022-11-13
  • android实现简单进度条ProgressBar效果
    本文实例为大家分享了android实现简单进度条ProgressBar的具体代码,供大家参考,具体内容如下 记录一下今天学习的进度条ProgressBar 1、在布局文件中添加Pr...
    99+
    2022-11-13
  • Android Studio怎么实现进度条效果
    小编给大家分享一下Android Studio怎么实现进度条效果,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Android是什么Android是一种基于Linu...
    99+
    2023-06-14
  • 如何在html中实现进度条效果
    今天就跟大家聊聊有关如何在html中实现进度条效果,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。<progress> 标签定义运行中的任务进度(进程)。下载进度:<...
    99+
    2023-06-15
  • Android ProgressBar 模拟进度条效果的实现
    进度条的使用 圆形进度条 <ProgressBar android:id="@+id/pb" android:layout_...
    99+
    2022-11-12
  • JavaScript实现带粒子效果的进度条
    本文实例为大家分享了JavaScript实现带粒子效果进度条的具体代码,供大家参考,具体内容如下 <html>     <head>         <...
    99+
    2022-11-13
  • shell 中怎么实现一个进度条效果
    本篇文章为大家展示了shell 中怎么实现一个进度条效果,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。代码如下:#!/bin/bashCOUNTER=0_R=0_C=`tput cols`_PROC...
    99+
    2023-06-09
  • C# 中怎么实现一个进度条效果
    本篇文章给大家分享的是有关C# 中怎么实现一个进度条效果,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。C# 进度条效果实现实例源码:public class ...
    99+
    2023-06-17
  • AJAX中怎么实现一个进度条效果
    AJAX中怎么实现一个进度条效果,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。 效果如下: 代码如...
    99+
    2022-10-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作