ZoomControls, Include, VideoView, WebView, RatingBar, Tab, Spinner, Chronometer, ScrollView

介绍
在 Android 中使用各种控件(View)
ZoomControls - 放大/缩小按钮控件
Include - 整合控件
VideoView - 视频播放控件
WebView - 浏览器控件
RatingBar - 评分控件
Tab - 选项卡控件
Spinner - 下拉框控件
Chronometer - 计时器控件
ScrollView - 滚动条控件


Java代码 复制代码
  1. 1、ZoomControls 的 Demo   
  2. zoomcontrols.xml    
  3.   
  4. 代码    
  5. <?xml version="1.0" encoding="utf-8"?>   
  6. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  7.     android:orientation="vertical" android:layout_width="fill_parent"  
  8.     android:layout_height="fill_parent">   
  9.   
  10.     <!--   
  11.         放大/缩小按钮控件   
  12.     -->   
  13.     <ZoomControls android:id="@+id/zoomControls"  
  14.         android:layout_width="wrap_content" android:layout_height="wrap_content"></ZoomControls>   
  15.   
  16. </LinearLayout>   
  17.   
  18.   
  19. _ZoomControls.java   
  20.   
  21. 代码    
  22. package com.webabcd.view;   
  23.   
  24. import android.app.Activity;   
  25. import android.os.Bundle;   
  26. import android.view.View;   
  27. import android.view.View.OnClickListener;   
  28. import android.widget.Toast;   
  29. import android.widget.ZoomControls;   
  30.   
  31. public class _ZoomControls extends Activity {   
  32.   
  33.     @Override  
  34.     protected void onCreate(Bundle savedInstanceState) {   
  35.         // TODO Auto-generated method stub   
  36.         super.onCreate(savedInstanceState);   
  37.         this.setContentView(R.layout.zoomcontrols);   
  38.   
  39.         setTitle("ZoomControls");   
  40.   
  41.         ZoomControls zoomControls = (ZoomControls) this.findViewById(R.id.zoomControls);   
  42.         // setOnZoomInClickListener() - 响应单击放大按钮的事件   
  43.         zoomControls.setOnZoomInClickListener(new OnClickListener() {   
  44.             public void onClick(View v) {   
  45.                 Toast.makeText(_ZoomControls.this"单击了放大按钮", Toast.LENGTH_SHORT).show();   
  46.             }   
  47.         });   
  48.            
  49.         // setOnZoomOutClickListener() - 响应单击缩小按钮的事件   
  50.         zoomControls.setOnZoomOutClickListener(new OnClickListener() {   
  51.             public void onClick(View v) {   
  52.                 Toast.makeText(_ZoomControls.this"单击了缩小按钮", Toast.LENGTH_SHORT).show();       
  53.             }   
  54.         });   
  55.   
  56.     }   
  57. }   
  58.   
  59.   
  60.   
  61. 2、Include 的 Demo   
  62. include.xml   
  63.   
  64. 代码    
  65. <?xml version="1.0" encoding="utf-8"?>   
  66. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  67.     android:orientation="vertical" android:layout_width="fill_parent"  
  68.     android:layout_height="fill_parent">   
  69.   
  70.     <!--   
  71.         include - 整合控件,将指定的 layout 整合进来   
  72.             layout - 指定需要整合 layout   
  73.     -->   
  74.     <include android:id="@+id/cell1" layout="@layout/include_1" />   
  75.     <include android:id="@+id/cell2" android:layout_width="fill_parent" layout="@layout/include_2" />   
  76.   
  77. </LinearLayout>   
  78.   
  79.   
  80. include_1.xml   
  81.   
  82. 代码    
  83. <?xml version="1.0" encoding="utf-8"?>   
  84. <TextView xmlns:android="http://schemas.android.com/apk/res/android"  
  85.     android:text="TextView01" android:layout_width="wrap_content"  
  86.     android:layout_height="wrap_content">   
  87. </TextView>   
  88.   
  89.   
  90.   
  91. include_2.xml   
  92.   
  93. 代码    
  94. <?xml version="1.0" encoding="utf-8"?>   
  95. <TextView xmlns:android="http://schemas.android.com/apk/res/android"  
  96.     android:text="TextView02" android:layout_width="wrap_content"  
  97.     android:layout_height="wrap_content">   
  98. </TextView>   
  99.   
  100.   
  101. _Include.java   
  102.   
  103. 代码    
  104. package com.webabcd.view;   
  105.   
  106. import android.app.Activity;   
  107. import android.os.Bundle;   
  108.   
  109. public class _Include extends Activity {   
  110.   
  111.     @Override  
  112.     protected void onCreate(Bundle savedInstanceState) {   
  113.         // TODO Auto-generated method stub   
  114.         super.onCreate(savedInstanceState);   
  115.         this.setContentView(R.layout.include);   
  116.   
  117.         setTitle("Include");   
  118.     }   
  119. }   
  120.   
  121.   
  122.   
  123. 3、VideoView 的 Demo   
  124. videoview.xml   
  125.   
  126. 代码    
  127. <?xml version="1.0" encoding="utf-8"?>   
  128. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  129.     android:orientation="vertical" android:layout_width="fill_parent"  
  130.     android:layout_height="fill_parent">   
  131.   
  132.     <!--   
  133.         VideoView - 视频播放控件   
  134.     -->   
  135.     <VideoView android:id="@+id/videoView" android:layout_width="wrap_content"  
  136.         android:layout_height="wrap_content">   
  137.     </VideoView>   
  138.            
  139. </LinearLayout>   
  140.   
  141.   
  142. _VideoView.java    
  143. 代码    
  144. package com.webabcd.view;   
  145.   
  146. import android.app.Activity;   
  147. import android.net.Uri;   
  148. import android.os.Bundle;   
  149. import android.widget.MediaController;   
  150. import android.widget.VideoView;   
  151.   
  152. public class _VideoView extends Activity {   
  153.   
  154.     @Override  
  155.     protected void onCreate(Bundle savedInstanceState) {   
  156.         // TODO Auto-generated method stub   
  157.         super.onCreate(savedInstanceState);   
  158.         this.setContentView(R.layout.videoview);   
  159.   
  160.         setTitle("VideoView");   
  161.            
  162.         VideoView videoView = (VideoView) findViewById(R.id.videoView);   
  163.            
  164.         // 指定需要播放的视频的地址   
  165.         videoView.setVideoURI(Uri.parse("android.resource://com.webabcd.view/" + R.raw.demo));   
  166.         // videoView.setVideoPath();   
  167.             
  168.         // 设置播放器的控制条   
  169.         videoView.setMediaController(new MediaController(this));   
  170.         // 开始播放视频   
  171.         videoView.start();   
  172.     }   
  173. }   
  174.   
  175.   
  176.   
  177. 4、WebView 的 Demo   
  178. webview.xml   
  179.   
  180. 代码    
  181. <?xml version="1.0" encoding="utf-8"?>   
  182. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  183.     android:orientation="vertical" android:layout_width="fill_parent"  
  184.     android:layout_height="fill_parent">   
  185.   
  186.     <!--   
  187.         WebView - 浏览器控件(WebKit 内核)   
  188.     -->   
  189.     <WebView android:layout_width="fill_parent"  
  190.         android:layout_height="wrap_content" android:id="@+id/webView" />   
  191.            
  192. </LinearLayout>   
  193.   
  194.   
  195. _WebView.java   
  196.   
  197. 代码    
  198. package com.webabcd.view;   
  199.   
  200. import android.app.Activity;   
  201. import android.os.Bundle;   
  202. import android.webkit.WebSettings;   
  203. import android.webkit.WebView;   
  204.   
  205. public class _WebView extends Activity {   
  206.   
  207.     @Override  
  208.     protected void onCreate(Bundle savedInstanceState) {   
  209.         // TODO Auto-generated method stub   
  210.         super.onCreate(savedInstanceState);   
  211.         this.setContentView(R.layout.webview);   
  212.   
  213.         setTitle("WebView");   
  214.            
  215.         WebView webView = (WebView) findViewById(R.id.webView);   
  216.   
  217.         // 配置浏览器,使其可支持 JavaScript   
  218.         WebSettings webSettings = webView.getSettings();   
  219.         webSettings.setJavaScriptEnabled(true);   
  220.            
  221.         // 清除浏览器缓存   
  222.         webView.clearCache(true);   
  223.         // 指定浏览器需要解析的 url 地址   
  224.         webView.loadUrl("http://webabcd.cnblogs.com/");   
  225.         // 指定浏览器需要解析的 html 数据   
  226.         // webView.loadData("<a href='http://webabcd.cnblogs.com/'>webabcd</a>", "text/html", "utf-8");   
  227.     }   
  228. }   
  229.   
  230.   
  231.   
  232. 5、RatingBar 的 Demo   
  233. ratingbar.xml   
  234.   
  235. 代码    
  236. <?xml version="1.0" encoding="utf-8"?>   
  237. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  238.     android:orientation="vertical" android:layout_width="fill_parent"  
  239.     android:layout_height="fill_parent">   
  240.   
  241.     <!--   
  242.         RatingBar - 评分控件   
  243.             numStars - 评分控件的星星的数量   
  244.             rating - 当前评分的值       
  245.     -->   
  246.     <RatingBar android:id="@+id/ratingBar" android:numStars="5"  
  247.         android:rating="1.5" android:layout_width="wrap_content"  
  248.         android:layout_height="wrap_content">   
  249.     </RatingBar>   
  250.   
  251.     <TextView android:id="@+id/textView" android:layout_width="wrap_content"  
  252.         android:layout_height="wrap_content" />   
  253.   
  254. </LinearLayout>   
  255.   
  256.   
  257. _RatingBar.java   
  258.   
  259. 代码    
  260. package com.webabcd.view;   
  261.   
  262. import android.app.Activity;   
  263. import android.os.Bundle;   
  264. import android.widget.RatingBar;   
  265. import android.widget.TextView;   
  266.   
  267. public class _RatingBar extends Activity implements RatingBar.OnRatingBarChangeListener {   
  268.   
  269.     private RatingBar mRatingBar;   
  270.     private TextView mTextView;   
  271.   
  272.     @Override  
  273.     protected void onCreate(Bundle savedInstanceState) {   
  274.         // TODO Auto-generated method stub   
  275.         super.onCreate(savedInstanceState);   
  276.         this.setContentView(R.layout.ratingbar);   
  277.   
  278.         setTitle("RatingBar");   
  279.   
  280.         mTextView = (TextView) findViewById(R.id.textView);   
  281.         mRatingBar = (RatingBar) findViewById(R.id.ratingBar);   
  282.   
  283.         // setOnRatingBarChangeListener() - 响应评分值发生改变的事件   
  284.         mRatingBar.setOnRatingBarChangeListener(this);   
  285.     }   
  286.   
  287.     @Override  
  288.     public void onRatingChanged(RatingBar ratingBar, float rating,   
  289.             boolean fromUser) {   
  290.         mTextView.setText(String.valueOf(rating));   
  291.     }   
  292. }   
  293.   
  294.   
  295.   
  296. 6、Tab 的 Demo   
  297. tab.xml   
  298.   
  299. 代码    
  300. <?xml version="1.0" encoding="utf-8"?>   
  301. <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  302.     android:layout_width="fill_parent" android:layout_height="fill_parent">   
  303.   
  304.     <!-- Tab 1 的内容 -->   
  305.     <TextView android:id="@+id/view1" android:layout_width="fill_parent"  
  306.         android:layout_height="fill_parent" android:text="tab1 content" />   
  307.            
  308.     <!-- Tab 2 的内容 -->   
  309.     <TextView android:id="@+id/view2" android:layout_width="fill_parent"  
  310.         android:layout_height="fill_parent" android:text="tab2 content" />   
  311.   
  312. </FrameLayout>   
  313.   
  314.   
  315. _Tab.java   
  316.   
  317. 代码    
  318. package com.webabcd.view;   
  319.   
  320. import android.app.TabActivity;   
  321. import android.content.Intent;   
  322. import android.os.Bundle;   
  323. import android.view.LayoutInflater;   
  324. import android.widget.TabHost;   
  325.   
  326. // 实现 Tab 功能的话要继承 TabActivity   
  327. public class _Tab extends TabActivity {   
  328.   
  329.     @Override  
  330.     protected void onCreate(Bundle savedInstanceState) {   
  331.         // TODO Auto-generated method stub   
  332.         super.onCreate(savedInstanceState);   
  333.   
  334.         TabHost tabHost = getTabHost();   
  335.         LayoutInflater.from(this).inflate(R.layout.tab, tabHost.getTabContentView(), true);   
  336.   
  337.         // Tab 1 的内容   
  338.         tabHost.addTab(tabHost.newTabSpec("tab1")   
  339.                 .setIndicator("tab1")   
  340.                 .setContent(R.id.view1));   
  341.            
  342.         // Tab 2 的内容(设置了 Tab 图片)   
  343.         tabHost.addTab(tabHost.newTabSpec("tab2")   
  344.                 .setIndicator("tab2", getResources().getDrawable(R.drawable.icon01))   
  345.                 .setContent(R.id.view2));   
  346.            
  347.         // Tab 3 的内容(设置 Tab 的内容为指定的 Activity)   
  348.         tabHost.addTab(tabHost.newTabSpec("tab3")   
  349.                 .setIndicator("tab3")   
  350.                 .setContent(new Intent(this, _TextView.class)));   
  351.   
  352.     }   
  353. }   
  354.   
  355.   
  356.   
  357. 7、Spinner 的 Demo   
  358. spinner.xml   
  359.   
  360. 代码    
  361. <?xml version="1.0" encoding="utf-8"?>   
  362. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  363.     android:orientation="vertical" android:layout_width="fill_parent"  
  364.     android:layout_height="fill_parent">   
  365.   
  366.     <TextView android:layout_width="fill_parent"  
  367.         android:layout_height="wrap_content" android:id="@+id/textView" />   
  368.   
  369.     <!--   
  370.         Spinner - 下拉框控件   
  371.     -->           
  372.     <Spinner android:id="@+id/spinner" android:layout_width="fill_parent"  
  373.         android:layout_height="wrap_content" />   
  374.   
  375. </LinearLayout>   
  376.   
  377.   
  378. _Spinner.java   
  379.   
  380. 代码    
  381. package com.webabcd.view;   
  382.   
  383. import android.app.Activity;   
  384. import android.os.Bundle;   
  385. import android.view.View;   
  386. import android.widget.AdapterView;   
  387. import android.widget.ArrayAdapter;   
  388. import android.widget.Spinner;   
  389. import android.widget.TextView;   
  390.   
  391. public class _Spinner extends Activity {   
  392.   
  393.     @Override  
  394.     protected void onCreate(Bundle savedInstanceState) {   
  395.         // TODO Auto-generated method stub   
  396.         super.onCreate(savedInstanceState);   
  397.         this.setContentView(R.layout.spinner);   
  398.   
  399.         setTitle("Spinner");   
  400.   
  401.         Spinner spinner = (Spinner) findViewById(R.id.spinner);   
  402.            
  403.         // 设置下拉框控件的标题文本   
  404.         spinner.setPrompt("请选择");   
  405.         // 实例化适配器,指定显示格式及数据源   
  406.         ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(   
  407.                 this, R.array.colors, android.R.layout.simple_spinner_item);   
  408.         adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);   
  409.         spinner.setAdapter(adapter);   
  410.   
  411.         // setOnItemSelectedListener() - 响应下拉框的选中值发生变化的事件   
  412.         spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {   
  413.             @Override  
  414.             public void onItemSelected(AdapterView<?> arg0, View arg1,   
  415.                     int arg2, long arg3) {   
  416.                 TextView textView = (TextView)_Spinner.this.findViewById(R.id.textView);   
  417.                 textView.setText(((TextView)arg1).getText());   
  418.             }   
  419.   
  420.             @Override  
  421.             public void onNothingSelected(AdapterView<?> arg0) {   
  422.                                    
  423.             }   
  424.         });   
  425.     }   
  426. }   
  427.   
  428.   
  429.   
  430. 8、Chronometer 的 Demo   
  431. chronometer.xml   
  432.   
  433. 代码    
  434. <?xml version="1.0" encoding="utf-8"?>   
  435. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  436.     android:orientation="vertical" android:layout_width="fill_parent"  
  437.     android:layout_height="fill_parent">   
  438.   
  439.     <!--   
  440.         Chronometer - 计时器控件   
  441.     -->   
  442.     <Chronometer android:id="@+id/chronometer"  
  443.         android:layout_width="wrap_content" android:layout_height="wrap_content" />   
  444.   
  445.     <Button android:id="@+id/btnStart" android:layout_width="wrap_content"  
  446.         android:layout_height="wrap_content" android:text="开始计时">   
  447.         <requestFocus />   
  448.     </Button>   
  449.   
  450.     <Button android:id="@+id/btnStop" android:layout_width="wrap_content"  
  451.         android:layout_height="wrap_content" android:text="停止计时">   
  452.     </Button>   
  453.   
  454.     <Button android:id="@+id/btnReset" android:layout_width="wrap_content"  
  455.         android:layout_height="wrap_content" android:text="计时器复位">   
  456.     </Button>   
  457.   
  458. </LinearLayout>   
  459.   
  460.   
  461. _Chronometer.java   
  462.   
  463. 代码    
  464. package com.webabcd.view;   
  465.   
  466. import android.app.Activity;   
  467. import android.os.Bundle;   
  468. import android.os.SystemClock;   
  469. import android.view.View;   
  470. import android.view.View.OnClickListener;   
  471. import android.widget.Button;   
  472. import android.widget.Chronometer;   
  473.   
  474. public class _Chronometer extends Activity {   
  475.   
  476.     private Chronometer mChronometer;   
  477.   
  478.     @Override  
  479.     protected void onCreate(Bundle savedInstanceState) {   
  480.         // TODO Auto-generated method stub   
  481.         super.onCreate(savedInstanceState);   
  482.         this.setContentView(R.layout.chronometer);   
  483.   
  484.         setTitle("Chronometer");   
  485.   
  486.         Button button;   
  487.   
  488.         mChronometer = (Chronometer) findViewById(R.id.chronometer);   
  489.         // 设置计时器所显示的时间格式   
  490.         mChronometer.setFormat("计时:(%s)");   
  491.            
  492.         button = (Button) findViewById(R.id.btnStart);   
  493.         button.setOnClickListener(mStartListener);   
  494.   
  495.         button = (Button) findViewById(R.id.btnStop);   
  496.         button.setOnClickListener(mStopListener);   
  497.   
  498.         button = (Button) findViewById(R.id.btnReset);   
  499.         button.setOnClickListener(mResetListener);   
  500.     }   
  501.   
  502.     View.OnClickListener mStartListener = new OnClickListener() {   
  503.         public void onClick(View v) {   
  504.             // 启动计时器   
  505.             mChronometer.start();   
  506.         }   
  507.     };   
  508.   
  509.     View.OnClickListener mStopListener = new OnClickListener() {   
  510.         public void onClick(View v) {   
  511.             // 暂停计时器   
  512.             mChronometer.stop();   
  513.         }   
  514.     };   
  515.   
  516.     View.OnClickListener mResetListener = new OnClickListener() {   
  517.         public void onClick(View v) {   
  518.             // 复位计时器,即停止计时器   
  519.             mChronometer.setBase(SystemClock.elapsedRealtime());   
  520.         }   
  521.     };   
  522. }   
  523.   
  524.   
  525.   
  526. 9、ScrollView 的 Demo    
  527. scrollview.xml   
  528.   
  529. 代码    
  530. <?xml version="1.0" encoding="utf-8"?>   
  531. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  532.     android:orientation="vertical" android:layout_width="fill_parent"  
  533.     android:layout_height="fill_parent">   
  534.   
  535.     <!--   
  536.         ScrollView - 滚动条控件   
  537.             scrollbarStyle - 滚动条的样式   
  538.     -->   
  539.     <ScrollView android:id="@+id/scrollView"  
  540.         android:layout_width="fill_parent" android:layout_height="200px"  
  541.         android:scrollbarStyle="outsideOverlay" android:background="@android:drawable/edit_text">   
  542.         <TextView android:layout_width="fill_parent"  
  543.             android:layout_height="wrap_content" android:id="@+id/textView" />   
  544.     </ScrollView>   
  545.   
  546. </LinearLayout>   
  547.   
  548.   
  549. _ScrollView.java   
  550.   
  551. 代码    
  552. package com.webabcd.view;   
  553.   
  554. import android.app.Activity;   
  555. import android.os.Bundle;   
  556. import android.widget.TextView;   
  557.   
  558. public class _ScrollView extends Activity {   
  559.   
  560.     @Override  
  561.     protected void onCreate(Bundle savedInstanceState) {   
  562.         // TODO Auto-generated method stub   
  563.         super.onCreate(savedInstanceState);   
  564.         this.setContentView(R.layout.scrollview);   
  565.   
  566.         setTitle("ScrollView");   
  567.   
  568.         TextView textView = (TextView)this.findViewById(R.id.textView);   
  569.         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");   
  570.     }   
  571. }  
posted on 2011-03-05 07:40  唐朝  阅读(560)  评论(0编辑  收藏  举报