Android之组件ProgressBar、SeekBar、ImageView、tabHost总结

今天讲了四个组件:ProgressBar、SeekBar、ImageView、tabHost

1、 ProgressBar进度条

两种效果如图:

<ProgressBar

android:layout_width="wrap_content"

android:layout_height="wrap_content"

/>

<ProgressBar

android:id="@+id/progress1"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:progress="10"//设置最初进度以是多少

android:secondaryProgress="20"//设置第二阶进度以是多少,颜色比上面那个浅是第二进度

android:max="100"//设置最大值

style="@android:style/Widget.ProgressBar.Horizontal"

//设置样式

/>

当然还有另外一种是自己定义背景图标:


首先在drawable文件夹中建一个mybar.xml文件和两个图片分别是xin和xin1:

<?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/xin"/>

<item android:id="@android:id/progress"

android:drawable="@drawable/xin1"/>

</layer-list>

以上是设置进度条的背景和进度的时候是什么状态!!

然后在布局文件中写:

<ProgressBar

android:id="@+id/progress2"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:layout_marginTop="20dp"

android:max="100"

android:progressDrawable="@drawable/mybar"//引用mybar这个文件

style="@android:style/Widget.ProgressBar.Horizontal"

/>

利用线程让进度条走起来:

主要代码:

new Thread(new Runnable(){

public void run() {

while(i<progressMax){

i=doWork();

handler.post(new Runnable(){

public void run() {

progressBar1.setProgress(i); }

});

try {

Thread.sleep(100);

} catch (InterruptedException e) {

e.printStackTrace();

}

}

}

}).start();

public int doWork(){

Log.d("TAG", String.valueOf(i));

i=i+10;

if(i>=100){

i=0;

}

return i;

}

2、SeekBar拖动条

效果图:


<SeekBar

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:id="@+id/seekbar"

android:max="100"/>

星极拖动条:


<RatingBar

android:id="@+id/ratingbar"

android:layout_marginTop="20dp"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:numStars="5"

android:max="255"

android:progress="100"

android:stepSize="0.5"/>

可以自己定义图片:


如果想实现以上,步骤如下:

首先:建一个styles.xml文件

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

<resources>

<style

name="circleRatingBar"//取名字为circleRatingBar,在布局文件中要用

parent="@android:style/Widget.RatingBar">

<item name="android:progressDrawable">@drawable/circle_bar</item>

<item name="android:minHeight">45dp</item>

<item name="android:maxHeight">45dp</item>

</style>

</resources>

然后在drawable文件夹中建一个circle_bar.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/circle"/>

<item android:id="@+android:id/secondaryProgress"

android:drawable="@drawable/circle2"/>

<item android:id="@+android:id/progress"

android:drawable="@drawable/circle1"/>

</layer-list>

最后在布局文件中引用风格:

<RatingBar

android:id="@+id/rating"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:max="255"

android:progress="100"

android:layout_marginTop="20dp"

style="@style/circleRatingBar"//这一个是引用你定义的

/>

Ok,!!

下面是实现监听:

使类实现OnSeekBarChangeListener接口,自动覆盖方法

public class SeekBarDemo extends ActivityimplementsOnSeekBarChangeListener{

protected void onCreate(Bundle savedInstanceState) {

// TODO Auto-generatedmethod stub

super.onCreate(savedInstanceState);

setContentView(R.layout.seekbar_layout);

SeekBar seekBar = (SeekBar) findViewById(R.id.seekbar);

seekBar.setOnSeekBarChangeListener(this);

}

public void onProgressChanged(SeekBar arg0, int arg1, boolean arg2) {

}

public void onStartTrackingTouch(SeekBar arg0) {

Log.d("TAG","startv="+arg0.getProgress());

}

public void onStopTrackingTouch(SeekBar seekBar) {

Log.d("TAG","stopv="+seekBar.getProgress());

}

}

3、 imageView

显示任意图像,例如图标。ImageView类可以加载各种来源的图片(如资源或图片库),需要计算图像的尺寸,比便它可以在其他布局中使用,并提供例如缩放和着色(渲染)各种显示选项。

<ImageView

android:layout_width="fill_parent"

android:layout_height="match_parent"

android:src="@drawable/ic_launcher"

android:background="#f00"

android:scaleType="fitStart" />

注:ImageView只能显示整个图象

4、 TabHost

效果如图:


提供选项卡(Tab页)的窗口视图容器。此对象包含两个子对象:一组是用户可以选择指定Tab页的标签;另一组是FrameLayout用来显示该Tab页的内容。通常控制使用这个容器对象,而不是设置在子元素本身的值。(译者注:即使使用的是单个元素,也最好把它放到容器对象ViewGroup里)

使类直接继承ListActivity

public class TabDemoActivity extends TabActivity {

TabHost tabHost=null;

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

tabHost=this.getTabHost();

tabHost.addTab(tabHost.newTabSpec("tab1").setIndicator("拨号",getResources().getDrawable(R.drawable.dialing)).setContent(new Intent(this,DialingActivity.class)));

tabHost.addTab(tabHost.newTabSpec("tab2").setIndicator("通话记录",getResources().getDrawable(R.drawable.call)).setContent(new Intent(this,CallActivity.class)));

tabHost.addTab(tabHost.newTabSpec("tab3").setIndicator("通讯录",getResources().getDrawable(R.drawable.address_book)).setContent(new Intent(this,AddressBookActivity.class)));

tabHost.addTab(tabHost.newTabSpec("tab4").setIndicator("图片收藏",getResources().getDrawable(R.drawable.collect)).setContent(new Intent(this,CollectActivity.class)));

}

}

利用intent显示内容!!!!

这种方法最合理!

TabHostDemo.this.getTabHost().setCurrentTabByTag("tab2");

这个是跳到指定的tab项!!

实例代码综合下载地址:http://download.csdn.net/download/rhljiayou/3926080


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值