RelativeLayout

 
 有这样一个需求,用RelativeLayout实现在同一行显示两个一个ProgressBar,一个TextView,TextView显示的长度是固定的,而ProgressBar则需要自适应不同屏幕大小的手机,这个时候怎么实现呢?实现代码如下
<RelativeLayout
	    	android:layout_width="wrap_content"
	    	android:layout_height="wrap_content"

	    >
	    <ProgressBar android:id="@+id/kill_cloud_progress1"
				style="?android:attr/progressBarStyleHorizontal"
				 android:layout_width="match_parent"
				android:layout_height="wrap_content" android:progress="50"
				android:progressDrawable="@drawable/progressbar" 
				android:layout_marginRight="100dip"/>
			<TextView android:text="已扫描  16%" android:layout_width="wrap_content"
				 android:layout_height="20.0dip"
				 android:layout_toRightOf="@id/kill_cloud_progress1"
				 android:layout_marginLeft="-100dip"
				android:textColor="#0000ff" android:textSize="15sp" android:gravity="center"
				android:id="@+id/scanCount1" />
</RelativeLayout>


 

这里主要的布局属性是ProgressBar 的android:layout_width="match_parent" android:layout_marginRight="100dip"

TextView的  android:layout_toRightOf="@id/kill_cloud_progress1"
     android:layout_marginLeft="-100dip"

 

顺便对于ProgressBar的自定义实现如下,/res/drawable/progressbar.xml

<?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/processbg"/>
<!--  设置第二级进度条颜色图像资源  -->  
<item android:id="@android:id/secondaryProgress" android:drawable="@drawable/processblue" />  
<!--  设置第一级进度条颜色图像资源  -->  
<item android:id="@android:id/progress" android:drawable="@drawable/processblue" />  
</layer-list>


 

id为background的item:系统画的是一个圆角为5dip的长条图,最底层的一个背景

id为secondaryProgress的item:系统画的是一个圆角为5dip的长条图,第二层的背景图,用了clip,可以根据进度来切。就像视频里已经下载完的那部分进度图。

id为progress的item:系统画的是一个圆角为5dip的长条图,最顶层的黄色的背景图,用了一个。可以根据设置的进度来切。就像视频里已经播放到的那部分进度图。

如果要自定义progressBar的样式,只需自定义系统的这个XML,然后:

mProgressBar.setProgressDrawable(progressStyle);

mProgressbar是progressBar,progressStyel是Drawable,也就是自定义的progress的样式。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值