`
zhangziyangup
  • 浏览: 1073019 次
文章分类
社区版块
存档分类
最新评论

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


分享到:
评论

相关推荐

    老罗android视频开发源码和ppt经典

    四、Android之http协议编程 4.1 http协议的介绍 4.2 http协议GET方式获取图片 4.3 http使用Post方式进行提交数据 4.4 http使用apache工具类提交数据 五、 Android解析json数据 5.1 android解析json数据(一) 5.2 ...

    Android编程入门很简单.(清华出版.王勇).part1

    书名:《Android编程入门很简单》(清华大学出版社.王勇)。 压缩打包成2部分,这是第1部分。 本书是一本与众不同的Android学习读物,是一本化繁为简,把抽象问题具体化,把复杂问题简单化的书。本书避免出现...

    有Scroll控件进行连接的多个android控件基础运用

    该android源文件包括:AutoCompleteTextView、CheckButton、Clock、DataPicker、TimePicker、EditText、Gallary、ImageButton、ImageView、ListView、ProgressBar、RatingBar、SeekBar、Spinner、TabHost、TextView...

    Android编程入门很简单.(清华出版.王勇).part2

    书名:《Android编程入门很简单》(清华大学出版社.王勇)。 压缩打包成2部分,这是第2部分。 本书是一本与众不同的Android学习读物,是一本化繁为简,把抽象问题具体化,把复杂问题简单化的书。本书避免出现...

    疯狂Android讲义源码

     1.6 Android应用的基本组件  介绍 31  1.6.1 Activity和View 31  1.6.2 Service 32  1.6.3 BroadcastReceiver 32  1.6.4 ContentProvider 32  1.6.5 Intent和IntentFilter 33  1.7 本章小结 33  第2章 ...

    疯狂Android讲义(第2版)源代码 第6章~第9章

    《疯狂Android讲义(第2版)》.(李刚).源代码 疯狂Android讲义目录结构: 第2章、Android应用程序界面设计,即View 2.2、布局管理(Layout):LinearLayout、TableLayout、FrameLayout、RelativeLayout; 2.3、基本...

    Android实例代码

    ImageView; 2.4、高级界面组件:AutoCompleteTextView; Spinner; DatePicker、TimePicker; ProgressBar; SeekBar; RatingBar; TabHost; ScrollView; ListView、ListActivity; ExpandableListView; GridView、...

    疯狂Android讲义.part2

    1.6 Android应用的基本组件 介绍 31 1.6.1 Activity和View 31 1.6.2 Service 32 1.6.3 BroadcastReceiver 32 1.6.4 ContentProvider 32 1.6.5 Intent和IntentFilter 33 1.7 本章小结 33 第2章 Android应用的界面编程...

    疯狂Android讲义.part1

    1.6 Android应用的基本组件 介绍 31 1.6.1 Activity和View 31 1.6.2 Service 32 1.6.3 BroadcastReceiver 32 1.6.4 ContentProvider 32 1.6.5 Intent和IntentFilter 33 1.7 本章小结 33 第2章 Android应用的界面编程...

    Basic4Android 初學者指南 英文版

    1.1 Installing Basic4Android and Android SDK ....................................................................7 1.1.1 Install and configure Basic4Android ..............................................

Global site tag (gtag.js) - Google Analytics