效果图:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

改动progressbar 让他满足自己的需求一般来说仅仅改动一下,progressbar的style就能够满足需求了:

activity代码:只显示一个布局而已

package com.example.testcustomprogressbar;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem; public class MainActivity extends Activity { @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}

xml界面:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.testcustomprogressbar.MainActivity" > <ProgressBar
android:id="@+id/my_customprogressbar1"
style="@style/mycustom_progressbar1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true" /> <ProgressBar
android:id="@+id/my_customprogressbar2"
style="@style/mycustom_progressbar2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/my_customprogressbar1"
android:layout_below="@+id/my_customprogressbar1"
android:layout_marginTop="26dp" /> <ProgressBar
android:id="@+id/my_customprogressbar3"
style="@style/mycustom_progressbar3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/my_customprogressbar2"
android:layout_below="@+id/my_customprogressbar2"
android:layout_marginTop="26dp" /> <ProgressBar
android:id="@+id/my_customprogressbar4"
style="@style/mycustom_progressbar_hor"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:layout_below="@+id/my_customprogressbar3"
android:layout_centerHorizontal="true"
android:layout_marginTop="22dp"
android:max="100"
android:progress="40"
android:secondaryProgress="60" /> <ProgressBar
android:id="@+id/my_customprogressbar5"
style="@style/mycustom_progressbar_hor2"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/my_customprogressbar4"
android:layout_below="@+id/my_customprogressbar4"
android:layout_marginTop="26dp"
android:max="100"
android:progress="40"
android:secondaryProgress="60" /> </RelativeLayout>

第一种圆形progressbar 只让一个图片旋转起来:

style的代码:

 <style name="mycustom_progressbar1">
<item name="android:indeterminateDrawable">@drawable/progressbar_ver_image</item>
<item name="android:minHeight">30dp</item>
<item name="android:minWidth">30dp</item>
<item name="android:maxHeight">60dp</item>
<item name="android:maxWidth">60dp</item>
</style>

progressbar_ver_image的代码:

<?

xml version="1.0" encoding="utf-8"?>
<!-- 定义一个旋转的动画 ,图片是我们自己定义的-->
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
android:drawable="@drawable/resizeapi"
android:fromDegrees="0"
android:pivotX="50%"
android:pivotY="50%"
android:toDegrees="360" > </rotate>

另外一种圆形progressbar 使用一个动画:

style:

 <style name="mycustom_progressbar2">
<item name="android:indeterminateDrawable">@drawable/progressbar_ver_animation</item>
<item name="android:minHeight">60dp</item>
<item name="android:minWidth">60dp</item>
<item name="android:maxHeight">100dp</item>
<item name="android:maxWidth">100dp</item>
</style>

progressbar_ver_animation的代码:

<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android" > <item
android:drawable="@drawable/ok1"
android:duration="250"/>
<item
android:drawable="@drawable/ok2"
android:duration="250"/>
<item
android:drawable="@drawable/ok3"
android:duration="250"/>
<item
android:drawable="@drawable/ok4"
android:duration="250"/> </animation-list>

第三种圆形progressbar 使用shape来构建drawable:

<style name="mycustom_progressbar3">
<item name="android:indeterminateDrawable">@drawable/progressbar_ver_shape</item>
<item name="android:minHeight">60dp</item>
<item name="android:minWidth">60dp</item>
<item name="android:maxHeight">100dp</item>
<item name="android:maxWidth">100dp</item>
</style>

progressbar_ver_shape的代码:

<?xml version="1.0" encoding="utf-8"?>
<!-- 定义一个旋转的动画 ,图片是我们自己定义的shape -->
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromDegrees="0"
android:pivotX="50%"
android:pivotY="50%"
android:toDegrees="360" >
<shape
android:innerRadiusRatio="3"
android:shape="ring"
android:thicknessRatio="8"
android:useLevel="false" >
<gradient
android:centerColor="#FFFFFF"
android:centerY="0.50"
android:endColor="#1E90FF"
android:startColor="#000000"
android:type="sweep"
android:useLevel="false" />
</shape> </rotate>

第四种: 横向progressbar 复制粘贴系统的style,然后改动:

<?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="5dip" />
<gradient
android:startColor="#ffff0000"
android:centerColor="#ffff0000"
android:centerY="0.75"
android:endColor="#ffff0000"
android:angle="270"
/>
</shape>
</item> <item android:id="@android:id/secondaryProgress">
<clip>
<shape>
<corners android:radius="5dip" />
<gradient
android:startColor="#800000ff"
android:centerColor="#800000ff"
android:centerY="0.75"
android:endColor="#800000ff"
android:angle="270"
/>
</shape>
</clip>
</item> <item android:id="@android:id/progress"
>
<clip > <shape>
<corners android:radius="5dip" />
<gradient
android:startColor="#ff00ff00"
android:centerColor="#ff00ff00"
android:centerY="0.75"
android:endColor="#ff00ff00"
android:angle="270"
/>
</shape>
</clip>
</item> </layer-list>

这样直接在progressbar中引用该style就能够满足需求了,当然我们也能够把progressbar background progress secondprogress都分别定义成一个drawable,然后使用:

background:

<shape xmlns:android="http://schemas.android.com/apk/res/android" >
<corners android:radius="5dip" />
<gradient
android:angle="270"
android:centerColor="#ffff0000"
android:centerY="0.75"
android:endColor="#ffff0000"
android:startColor="#ffff0000" />
</shape>

progress:

<shape xmlns:android="http://schemas.android.com/apk/res/android" >

    <corners android:radius="5dip" />

    <gradient
android:angle="270"
android:centerColor="#ff00ff00"
android:centerY="0.75"
android:endColor="#ff00ff00"
android:startColor="#ff00ff00" /> </shape>

secondprogress:

<shape xmlns:android="http://schemas.android.com/apk/res/android" >

    <corners android:radius="5dip" />

    <gradient
android:angle="270"
android:centerColor="#800000ff"
android:centerY="0.75"
android:endColor="#800000ff"
android:startColor="#800000ff" /> </shape>

这个时候style中的代码就会清晰一点:

<?

xml version="1.0" encoding="utf-8"?

>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" > <item
android:id="@android:id/background"
android:drawable="@drawable/progressbar_hor_bg">
</item>
<item android:id="@android:id/secondaryProgress">
<clip android:drawable="@drawable/progressbar_hor_second_progress" >
</clip>
</item>
<item android:id="@android:id/progress">
<clip android:drawable="@drawable/progressbar_hor_progress" >
</clip>
</item> <!-- progress 这个地方原作者写的是一个点9的图-->
<!-- <item android:id="@android:id/progress">
<clip>
<nine-patch android:src="@drawable/progress_patch_galy" />
</clip>
</item> -->
</layer-list>

嘿嘿..最后,做人要厚道:神一般男人的原博主博文连接http://blog.csdn.net/mad1989/article/details/38042875

对了,代码还是贴上来吧.总感觉在ide中直接看代码会更舒服一些:http://download.csdn.net/detail/u010399316/9000197

android 自己定义水平和圆形progressbar 仅仅定义一些style就能够的更多相关文章

  1. Android圆形图片--自己定义控件

    Android圆形图片控件效果图例如以下: 代码例如以下: RoundImageView.java package com.dxd.roundimageview; import android.con ...

  2. Android 圆形ProgressBar风格设置

    Android系统自带的ProgressBar风格不是很好,如果想自己设置风格的话,一般有几种方法.首先介绍一下第一种方法通过动画实现.在res的anim下创建动画资源loading.xml: < ...

  3. Android特效专辑(五)——自定义圆形头像和仿MIUI卸载动画—粒子爆炸

    Android特效专辑(五)--自定义圆形头像和仿MIUI卸载动画-粒子爆炸 好的,各位亲爱的朋友,今天讲的特效还是比较炫的,首先,我们会讲一个自定义圆形的imageView,接着,我们会来实现粒子爆 ...

  4. 自定义的圆形ProgressBar

        之前已经详细讲解过自定义控件的使用方式了.这里我单独把定以好的控件列出来. 之前定义的各式各样的ProgressBar http://www.cnblogs.com/tianzhijiexia ...

  5. 【Android自己定义View实战】之自己定义超简单SearchView搜索框

    [Android自己定义View实战]之自己定义超简单SearchView搜索框 这篇文章是对之前文章的翻新,至于为什么我要又一次改动这篇文章?原因例如以下 1.有人举报我抄袭,原文链接:http:/ ...

  6. 实现android手机来电拦截系统页面弹出自定义页面特效

    如何实现android手机来电拦截系统页面弹出自定义页面特效, 首先:    我们需要注册一个监听来电的广播PhoneStateReceiver 类:其次:    在onReceive里面我们获取an ...

  7. Android自定义ImageView实现图片圆形 ,椭圆和矩形圆角显示

    Android中的ImageView只能显示矩形的图片,为了用户体验更多,Android实现圆角矩形,圆形或者椭圆等图形,一般通过自定义ImageView来实现,首先获取到图片的Bitmap,然后通过 ...

  8. Android改变系统自带环形ProgressBar的大小

    MainActivity如下: package cc.testprogressbar; import android.os.Bundle; import android.app.Activity; / ...

  9. Android OpenGL ES(七)基本几何图形定义 .

    在前面Android OpenGL ES(六):创建实例应用OpenGLDemos程序框架 我们创建了示例程序的基本框架,并提供了一个“Hello World”示例,将屏幕显示为红色. 本例介绍Ope ...

随机推荐

  1. Low Speed High Torque Hydraulic Motor: Motion Performance

    Crank connecting rod type low speed high torque hydraulic motor is used earlier, which is called Sta ...

  2. JavaEE-05 分页与文件上传

    学习要点 新闻分页显示数据 新闻图片上传 JSP分页显示数据 分页 数据信息较多的的时候一般采用列表显示,方便展示信息: 数据量较大的时候一般采用列表加分页的方式显示,便于阅读. 分页方式:集合或者s ...

  3. MySQL-01 MySQL数据库安装指南

    学习要点 MySQL数据库的安装和设置 下载mysql mysql官网:https://www.mysql.com/downloads/ 主要版本: Oracle MySQL Cloud Servic ...

  4. mysql的sql语句练习的2个网址

    sql语句练习: https://blog.csdn.net/mrbcy/article/details/68965271 完成. https://blog.csdn.net/flycat296/ar ...

  5. springmvc请求方法那些事

    @RequestMapping 用法详解之地址映射 (2013-08-11 16:06:58) 转载▼ 标签: it   前段时间项目中用到了RESTful模式来开发程序,但是当用POST.PUT模式 ...

  6. 万能的搜索--之DFS(二)

    (一)深度优先搜索(DFS) 我们先给出深度优先的解决办法,所谓深度优先搜索,在迷宫问题里就是不撞南墙不回头,能走得深一点就尽量深一点.如果碰到了墙壁就返回前一个位置尝试其他的方向.在<啊哈!算 ...

  7. java 生成二维码工具

    二维码生成 Gitee:https://gitee.com/search?utf8=%E2%9C%93&search=qrext4j&group_id=&project_id= ...

  8. Django中对接第三方支付(支付宝)实现支付的流程

    1. 业务逻辑准备 1. 使用沙箱提供的商家环境 沙箱环境:是支付宝提供给开发者的模拟支付的环境 沙箱应用:https://docs.open.alipay.com/200/105311 沙箱账号:h ...

  9. [数据结构]C#基于数组实现泛型顺序表

    前方预警,只完成了顺序表的插入/删除/查找. 错误代码示例: /// <summary> /// 查找顺序表第i个位置的元素 /// 在显示情况中,我们更常用下标 /// </sum ...

  10. Shell脚本问题详解

    例1:找出当前系统中端口大于1024的程序! 使用netstat -tuln查询出的结果如下,需要输出红色字体的行: [root@localhost ~]# netstat -tuln Active ...