天天看点

系出名门Android(7) - 控件(View)之ZoomControls, Include, VideoView, WebView, RatingBar, Tab

<a href="http://webabcd.blog.51cto.com/1787395/341976" target="_blank">[索引页]</a>

<a href="http://down.51cto.com/data/100088" target="_blank">[源码下载]</a>

系出名门Android(7) - 控件(View)之ZoomControls, Include, VideoView, WebView, RatingBar, Tab, Spinner, Chronometer, ScrollView

介绍

在 Android 中使用各种控件(View)

ZoomControls - 放大/缩小按钮控件

Include - 整合控件

VideoView - 视频播放控件

WebView - 浏览器控件

RatingBar - 评分控件

Tab - 选项卡控件

Spinner - 下拉框控件

Chronometer - 计时器控件

ScrollView - 滚动条控件

1、ZoomControls 的 Demo

zoomcontrols.xml 

&lt;?xml version="1.0" encoding="utf-8"?&gt; 

&lt;LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 

        android:orientation="vertical" android:layout_width="fill_parent" 

        android:layout_height="fill_parent"&gt; 

        &lt;!-- 

                放大/缩小按钮控件 

        --&gt; 

        &lt;ZoomControls android:id="@+id/zoomControls" 

                android:layout_width="wrap_content" android:layout_height="wrap_content"&gt;&lt;/ZoomControls&gt; 

&lt;/LinearLayout&gt;

_ZoomControls.java

package com.webabcd.view; 

import android.app.Activity; 

import android.os.Bundle; 

import android.view.View; 

import android.view.View.OnClickListener; 

import android.widget.Toast; 

import android.widget.ZoomControls; 

public class _ZoomControls extends Activity { 

        @Override 

        protected void onCreate(Bundle savedInstanceState) { 

                // TODO Auto-generated method stub 

                super.onCreate(savedInstanceState); 

                this.setContentView(R.layout.zoomcontrols); 

                setTitle("ZoomControls"); 

                ZoomControls zoomControls = (ZoomControls) this.findViewById(R.id.zoomControls); 

                // setOnZoomInClickListener() - 响应单击放大按钮的事件 

                zoomControls.setOnZoomInClickListener(new OnClickListener() { 

                        public void onClick(View v) { 

                                Toast.makeText(_ZoomControls.this, "单击了放大按钮", Toast.LENGTH_SHORT).show(); 

                        } 

                }); 

                // setOnZoomOutClickListener() - 响应单击缩小按钮的事件 

                zoomControls.setOnZoomOutClickListener(new OnClickListener() { 

                                Toast.makeText(_ZoomControls.this, "单击了缩小按钮", Toast.LENGTH_SHORT).show();         

        } 

}

2、Include 的 Demo

include.xml

                include - 整合控件,将指定的 layout 整合进来 

                        layout - 指定需要整合 layout 

        &lt;include android:id="@+id/cell1" layout="@layout/include_1" /&gt; 

        &lt;include android:id="@+id/cell2" android:layout_width="fill_parent" layout="@layout/include_2" /&gt; 

include_1.xml

&lt;TextView xmlns:android="http://schemas.android.com/apk/res/android" 

        android:text="TextView01" android:layout_width="wrap_content" 

        android:layout_height="wrap_content"&gt; 

&lt;/TextView&gt;

include_2.xml

        android:text="TextView02" android:layout_width="wrap_content" 

_Include.java

public class _Include extends Activity { 

                this.setContentView(R.layout.include); 

                setTitle("Include"); 

3、VideoView 的 Demo

videoview.xml

                VideoView - 视频播放控件 

        &lt;VideoView android:id="@+id/videoView" android:layout_width="wrap_content" 

                android:layout_height="wrap_content"&gt; 

        &lt;/VideoView&gt; 

_VideoView.java

import android.net.Uri; 

import android.widget.MediaController; 

import android.widget.VideoView; 

public class _VideoView extends Activity { 

                this.setContentView(R.layout.videoview); 

                setTitle("VideoView"); 

                VideoView videoView = (VideoView) findViewById(R.id.videoView); 

                // 指定需要播放的视频的地址 

                videoView.setVideoURI(Uri.parse("android.resource://com.webabcd.view/" + R.raw.demo)); 

                // videoView.setVideoPath(); 

                // 设置播放器的控制条 

                videoView.setMediaController(new MediaController(this)); 

                // 开始播放视频 

                videoView.start(); 

4、WebView 的 Demo

webview.xml

                WebView - 浏览器控件(WebKit 内核) 

        &lt;WebView android:layout_width="fill_parent" 

                android:layout_height="wrap_content" android:id="@+id/webView" /&gt; 

_WebView.java

import android.webkit.WebSettings; 

import android.webkit.WebView; 

public class _WebView extends Activity { 

                this.setContentView(R.layout.webview); 

                setTitle("WebView"); 

                WebView webView = (WebView) findViewById(R.id.webView); 

                // 配置浏览器,使其可支持 JavaScript 

                WebSettings webSettings = webView.getSettings(); 

                webSettings.setJavaScriptEnabled(true); 

                // 清除浏览器缓存 

                webView.clearCache(true); 

                // 指定浏览器需要解析的 url 地址 

                webView.loadUrl("http://webabcd.cnblogs.com/"); 

                // 指定浏览器需要解析的 html 数据 

                // webView.loadData("&lt;a href='http://webabcd.cnblogs.com/'&gt;webabcd&lt;/a&gt;", "text/html", "utf-8"); 

5、RatingBar 的 Demo

ratingbar.xml

                RatingBar - 评分控件 

                        numStars - 评分控件的星星的数量 

                        rating - 当前评分的值         

        &lt;RatingBar android:id="@+id/ratingBar" android:numStars="5" 

                android:rating="1.5" android:layout_width="wrap_content" 

        &lt;/RatingBar&gt; 

        &lt;TextView android:id="@+id/textView" android:layout_width="wrap_content" 

                android:layout_height="wrap_content" /&gt; 

_RatingBar.java

import android.widget.RatingBar; 

import android.widget.TextView; 

public class _RatingBar extends Activity implements RatingBar.OnRatingBarChangeListener { 

        private RatingBar mRatingBar; 

        private TextView mTextView; 

                this.setContentView(R.layout.ratingbar); 

                setTitle("RatingBar"); 

                mTextView = (TextView) findViewById(R.id.textView); 

                mRatingBar = (RatingBar) findViewById(R.id.ratingBar); 

                // setOnRatingBarChangeListener() - 响应评分值发生改变的事件 

                mRatingBar.setOnRatingBarChangeListener(this); 

        public void onRatingChanged(RatingBar ratingBar, float rating, 

                        boolean fromUser) { 

                mTextView.setText(String.valueOf(rating)); 

6、Tab 的 Demo

tab.xml

&lt;FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 

        android:layout_width="fill_parent" android:layout_height="fill_parent"&gt; 

        &lt;!-- Tab 1 的内容 --&gt; 

        &lt;TextView android:id="@+id/view1" android:layout_width="fill_parent" 

                android:layout_height="fill_parent" android:text="tab1 content" /&gt; 

        &lt;!-- Tab 2 的内容 --&gt; 

        &lt;TextView android:id="@+id/view2" android:layout_width="fill_parent" 

                android:layout_height="fill_parent" android:text="tab2 content" /&gt; 

&lt;/FrameLayout&gt;

_Tab.java

import android.app.TabActivity; 

import android.content.Intent; 

import android.view.LayoutInflater; 

import android.widget.TabHost; 

// 实现 Tab 功能的话要继承 TabActivity 

public class _Tab extends TabActivity { 

                TabHost tabHost = getTabHost(); 

                LayoutInflater.from(this).inflate(R.layout.tab, tabHost.getTabContentView(), true); 

                // Tab 1 的内容 

                tabHost.addTab(tabHost.newTabSpec("tab1") 

                                .setIndicator("tab1") 

                                .setContent(R.id.view1)); 

                // Tab 2 的内容(设置了 Tab 图片) 

                tabHost.addTab(tabHost.newTabSpec("tab2") 

                                .setIndicator("tab2", getResources().getDrawable(R.drawable.icon01)) 

                                .setContent(R.id.view2)); 

                // Tab 3 的内容(设置 Tab 的内容为指定的 Activity) 

                tabHost.addTab(tabHost.newTabSpec("tab3") 

                                .setIndicator("tab3") 

                                .setContent(new Intent(this, _TextView.class))); 

7、Spinner 的 Demo

spinner.xml

        &lt;TextView android:layout_width="fill_parent" 

                android:layout_height="wrap_content" android:id="@+id/textView" /&gt; 

                Spinner - 下拉框控件 

        --&gt;                 

        &lt;Spinner android:id="@+id/spinner" android:layout_width="fill_parent" 

_Spinner.java

import android.widget.AdapterView; 

import android.widget.ArrayAdapter; 

import android.widget.Spinner; 

public class _Spinner extends Activity { 

                this.setContentView(R.layout.spinner); 

                setTitle("Spinner"); 

                Spinner spinner = (Spinner) findViewById(R.id.spinner); 

                // 设置下拉框控件的标题文本 

                spinner.setPrompt("请选择"); 

                // 实例化适配器,指定显示格式及数据源 

                ArrayAdapter&lt;CharSequence&gt; adapter = ArrayAdapter.createFromResource( 

                                this, R.array.colors, android.R.layout.simple_spinner_item); 

                adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 

                spinner.setAdapter(adapter); 

                // setOnItemSelectedListener() - 响应下拉框的选中值发生变化的事件 

                spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 

                        @Override 

                        public void onItemSelected(AdapterView&lt;?&gt; arg0, View arg1, 

                                        int arg2, long arg3) { 

                                TextView textView = (TextView)_Spinner.this.findViewById(R.id.textView); 

                                textView.setText(((TextView)arg1).getText()); 

                        public void onNothingSelected(AdapterView&lt;?&gt; arg0) { 

8、Chronometer 的 Demo

chronometer.xml

                Chronometer - 计时器控件 

        &lt;Chronometer android:id="@+id/chronometer" 

                android:layout_width="wrap_content" android:layout_height="wrap_content" /&gt; 

        &lt;Button android:id="@+id/btnStart" android:layout_width="wrap_content" 

                android:layout_height="wrap_content" android:text="开始计时"&gt; 

                &lt;requestFocus /&gt; 

        &lt;/Button&gt; 

        &lt;Button android:id="@+id/btnStop" android:layout_width="wrap_content" 

                android:layout_height="wrap_content" android:text="停止计时"&gt; 

        &lt;Button android:id="@+id/btnReset" android:layout_width="wrap_content" 

                android:layout_height="wrap_content" android:text="计时器复位"&gt; 

_Chronometer.java

import android.os.SystemClock; 

import android.widget.Button; 

import android.widget.Chronometer; 

public class _Chronometer extends Activity { 

        private Chronometer mChronometer; 

                this.setContentView(R.layout.chronometer); 

                setTitle("Chronometer"); 

                Button button; 

                mChronometer = (Chronometer) findViewById(R.id.chronometer); 

                // 设置计时器所显示的时间格式 

                mChronometer.setFormat("计时:(%s)"); 

                button = (Button) findViewById(R.id.btnStart); 

                button.setOnClickListener(mStartListener); 

                button = (Button) findViewById(R.id.btnStop); 

                button.setOnClickListener(mStopListener); 

                button = (Button) findViewById(R.id.btnReset); 

                button.setOnClickListener(mResetListener); 

        View.OnClickListener mStartListener = new OnClickListener() { 

                public void onClick(View v) { 

                        // 启动计时器 

                        mChronometer.start(); 

                } 

        }; 

        View.OnClickListener mStopListener = new OnClickListener() { 

                        // 暂停计时器 

                        mChronometer.stop(); 

        View.OnClickListener mResetListener = new OnClickListener() { 

                        // 复位计时器,即停止计时器 

                        mChronometer.setBase(SystemClock.elapsedRealtime()); 

9、ScrollView 的 Demo 

scrollview.xml

                ScrollView - 滚动条控件 

                        scrollbarStyle - 滚动条的样式 

        &lt;ScrollView android:id="@+id/scrollView" 

                android:layout_width="fill_parent" android:layout_height="200px" 

                android:scrollbarStyle="outsideOverlay" android:background="@android:drawable/edit_text"&gt; 

                &lt;TextView android:layout_width="fill_parent" 

                        android:layout_height="wrap_content" android:id="@+id/textView" /&gt; 

        &lt;/ScrollView&gt; 

_ScrollView.java

public class _ScrollView extends Activity { 

                this.setContentView(R.layout.scrollview); 

                setTitle("ScrollView"); 

                TextView textView = (TextView)this.findViewById(R.id.textView); 

                textView.setText("a\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na"); 

OK

     本文转自webabcd 51CTO博客,原文链接:http://blog.51cto.com/webabcd/342082,如需转载请自行联系原作者

继续阅读