[索引页]
[×××]

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

作者:webabcd

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

  • ZoomControls - 放大/缩小按钮控件
  • Include - 整合控件
  • VideoView - 视频播放控件
  • WebView - 浏览器控件
  • RatingBar - 评分控件
  • Tab - 选项卡控件
  • Spinner - 下拉框控件
  • Chronometer - 计时器控件
  • ScrollView - 滚动条控件

1、ZoomControls 的 Demo
zoomcontrols.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical" android:layout_width="fill_parent"
        android:layout_height="fill_parent">

<!--
                放大/缩小按钮控件
        -->
        <ZoomControls android:id="@+id/zoomControls"
                android:layout_width="wrap_content" android:layout_height="wrap_content"></ZoomControls>

</LinearLayout>

_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() {
                        public void onClick(View v) {
                                Toast.makeText(_ZoomControls.this, "单击了缩小按钮", Toast.LENGTH_SHORT).show();        
                        }
                });

}
}

2、Include 的 Demo
include.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical" android:layout_width="fill_parent"
        android:layout_height="fill_parent">

<!--
                include - 整合控件,将指定的 layout 整合进来
                        layout - 指定需要整合 layout
        -->
        <include android:id="@+id/cell1" layout="@layout/include_1" />
        <include android:id="@+id/cell2" android:layout_width="fill_parent" layout="@layout/include_2" />

</LinearLayout>

include_1.xml
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
        android:text="TextView01" android:layout_width="wrap_content"
        android:layout_height="wrap_content">
</TextView>
include_2.xml
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
        android:text="TextView02" android:layout_width="wrap_content"
        android:layout_height="wrap_content">
</TextView>
_Include.java
package com.webabcd.view;

import android.app.Activity;
import android.os.Bundle;

public class _Include extends Activity {

@Override
        protected void onCreate(Bundle savedInstanceState) {
                // TODO Auto-generated method stub
                super.onCreate(savedInstanceState);
                this.setContentView(R.layout.include);

setTitle("Include");
        }
}

3、VideoView 的 Demo
videoview.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical" android:layout_width="fill_parent"
        android:layout_height="fill_parent">

<!--
                VideoView - 视频播放控件
        -->
        <VideoView android:id="@+id/videoView" android:layout_width="wrap_content"
                android:layout_height="wrap_content">
        </VideoView>
                
</LinearLayout>

_VideoView.java
package com.webabcd.view;

import android.app.Activity;
import android.net.Uri;
import android.os.Bundle;
import android.widget.MediaController;
import android.widget.VideoView;

public class _VideoView extends Activity {

@Override
        protected void onCreate(Bundle savedInstanceState) {
                // TODO Auto-generated method stub
                super.onCreate(savedInstanceState);
                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
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical" android:layout_width="fill_parent"
        android:layout_height="fill_parent">

<!--
                WebView - 浏览器控件(WebKit 内核)
        -->
        <WebView android:layout_width="fill_parent"
                android:layout_height="wrap_content" android:id="@+id/webView" />
                
</LinearLayout>

_WebView.java
package com.webabcd.view;

import android.app.Activity;
import android.os.Bundle;
import android.webkit.WebSettings;
import android.webkit.WebView;

public class _WebView extends Activity {

@Override
        protected void onCreate(Bundle savedInstanceState) {
                // TODO Auto-generated method stub
                super.onCreate(savedInstanceState);
                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("<a href='http://webabcd.cnblogs.com/'>webabcd</a>", "text/html", "utf-8");
        }
}

5、RatingBar 的 Demo
ratingbar.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical" android:layout_width="fill_parent"
        android:layout_height="fill_parent">

<!--
                RatingBar - 评分控件
                        numStars - 评分控件的星星的数量
                        rating - 当前评分的值        
        -->
        <RatingBar android:id="@+id/ratingBar" android:numStars="5"
                android:rating="1.5" android:layout_width="wrap_content"
                android:layout_height="wrap_content">
        </RatingBar>

<TextView android:id="@+id/textView" android:layout_width="wrap_content"
                android:layout_height="wrap_content" />

</LinearLayout>

_RatingBar.java
package com.webabcd.view;

import android.app.Activity;
import android.os.Bundle;
import android.widget.RatingBar;
import android.widget.TextView;

public class _RatingBar extends Activity implements RatingBar.OnRatingBarChangeListener {

private RatingBar mRatingBar;
        private TextView mTextView;

@Override
        protected void onCreate(Bundle savedInstanceState) {
                // TODO Auto-generated method stub
                super.onCreate(savedInstanceState);
                this.setContentView(R.layout.ratingbar);

setTitle("RatingBar");

mTextView = (TextView) findViewById(R.id.textView);
                mRatingBar = (RatingBar) findViewById(R.id.ratingBar);

// setOnRatingBarChangeListener() - 响应评分值发生改变的事件
                mRatingBar.setOnRatingBarChangeListener(this);
        }

@Override
        public void onRatingChanged(RatingBar ratingBar, float rating,
                        boolean fromUser) {
                mTextView.setText(String.valueOf(rating));
        }
}

6、Tab 的 Demo
tab.xml
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent" android:layout_height="fill_parent">

<!-- Tab 1 的内容 -->
        <TextView android:id="@+id/view1" android:layout_width="fill_parent"
                android:layout_height="fill_parent" android:text="tab1 content" />
                
        <!-- Tab 2 的内容 -->
        <TextView android:id="@+id/view2" android:layout_width="fill_parent"
                android:layout_height="fill_parent" android:text="tab2 content" />

</FrameLayout>

_Tab.java
package com.webabcd.view;

import android.app.TabActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.widget.TabHost;

// 实现 Tab 功能的话要继承 TabActivity
public class _Tab extends TabActivity {

@Override
        protected void onCreate(Bundle savedInstanceState) {
                // TODO Auto-generated method stub
                super.onCreate(savedInstanceState);

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
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical" android:layout_width="fill_parent"
        android:layout_height="fill_parent">

<TextView android:layout_width="fill_parent"
                android:layout_height="wrap_content" android:id="@+id/textView" />

<!--
                Spinner - 下拉框控件
        -->                
        <Spinner android:id="@+id/spinner" android:layout_width="fill_parent"
                android:layout_height="wrap_content" />

</LinearLayout>

_Spinner.java
package com.webabcd.view;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.TextView;

public class _Spinner extends Activity {

@Override
        protected void onCreate(Bundle savedInstanceState) {
                // TODO Auto-generated method stub
                super.onCreate(savedInstanceState);
                this.setContentView(R.layout.spinner);

setTitle("Spinner");

Spinner spinner = (Spinner) findViewById(R.id.spinner);
                
                // 设置下拉框控件的标题文本
                spinner.setPrompt("请选择");
                // 实例化适配器,指定显示格式及数据源
                ArrayAdapter<CharSequence> 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<?> arg0, View arg1,
                                        int arg2, long arg3) {
                                TextView textView = (TextView)_Spinner.this.findViewById(R.id.textView);
                                textView.setText(((TextView)arg1).getText());
                        }

@Override
                        public void onNothingSelected(AdapterView<?> arg0) {
                                                                
                        }
                });
        }
}

8、Chronometer 的 Demo
chronometer.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical" android:layout_width="fill_parent"
        android:layout_height="fill_parent">

<!--
                Chronometer - 计时器控件
        -->
        <Chronometer android:id="@+id/chronometer"
                android:layout_width="wrap_content" android:layout_height="wrap_content" />

<Button android:id="@+id/btnStart" android:layout_width="wrap_content"
                android:layout_height="wrap_content" android:text="开始计时">
                <requestFocus />
        </Button>

<Button android:id="@+id/btnStop" android:layout_width="wrap_content"
                android:layout_height="wrap_content" android:text="停止计时">
        </Button>

<Button android:id="@+id/btnReset" android:layout_width="wrap_content"
                android:layout_height="wrap_content" android:text="计时器复位">
        </Button>

</LinearLayout>

_Chronometer.java
package com.webabcd.view;

import android.app.Activity;
import android.os.Bundle;
import android.os.SystemClock;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Chronometer;

public class _Chronometer extends Activity {

private Chronometer mChronometer;

@Override
        protected void onCreate(Bundle savedInstanceState) {
                // TODO Auto-generated method stub
                super.onCreate(savedInstanceState);
                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() {
                public void onClick(View v) {
                        // 暂停计时器
                        mChronometer.stop();
                }
        };

View.OnClickListener mResetListener = new OnClickListener() {
                public void onClick(View v) {
                        // 复位计时器,即停止计时器
                        mChronometer.setBase(SystemClock.elapsedRealtime());
                }
        };
}

9、ScrollView 的 Demo 
scrollview.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical" android:layout_width="fill_parent"
        android:layout_height="fill_parent">

<!--
                ScrollView - 滚动条控件
                        scrollbarStyle - 滚动条的样式
        -->
        <ScrollView android:id="@+id/scrollView"
                android:layout_width="fill_parent" android:layout_height="200px"
                android:scrollbarStyle="outsideOverlay" android:background="@android:drawable/edit_text">
                <TextView android:layout_width="fill_parent"
                        android:layout_height="wrap_content" android:id="@+id/textView" />
        </ScrollView>

</LinearLayout>

_ScrollView.java
package com.webabcd.view;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

public class _ScrollView extends Activity {

@Override
        protected void onCreate(Bundle savedInstanceState) {
                // TODO Auto-generated method stub
                super.onCreate(savedInstanceState);
                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
[×××]

转载于:https://blog.51cto.com/webabcd/342082

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

  1. 系出名门Android(2) - 布局(Layout)和菜单(Menu)

    2019独角兽企业重金招聘Python工程师标准>>> 系出名门Android(2) - 布局(Layout)和菜单(Menu) 作者:webabcd 介绍 在 Android 中各 ...

  2. 系出名门Android(9) - 数据库支持(SQLite), 内容提供器(ContentProvider)

    [索引页] [×××] 系出名门Android(9) - 数据库支持(SQLite), 内容提供器(ContentProvider) 作者:webabcd 介绍 在 Android 中使用 SQLit ...

  3. Android开源控件收集整理

    一 .基本控件 TextView HTextView 一款支持TextView文字动画效果的Android组件库.GitHub - hanks-zyh/HTextView: Animation eff ...

  4. Android图表控件MPAndroidChart——曲线图LineChart的使用(财富收益图)

    目录 前言 本文涉及文章 其他相关文章 1.数据准备 1.1 数据来源 2.曲线展示 2.1 MPAndroidChart获取 2.2 数据对象获取 2.3 数据展示 3.曲线完善 3.1 图表背景. ...

  5. Android AutoCompleteTextView控件实现类似百度搜索提示,限制输入数字长度

    Android AutoCompleteTextView 控件实现类似被搜索提示,效果如下 1.首先贴出布局代码 activity_main.xml: <?xml version="1 ...

  6. android控件使用大全,Android常见控件使用详解

    本文实例为大家分享了六种Android常见控件的使用方法,供大家参考,具体内容如下 1.TextView 主要用于界面上显示一段文本信息 2.Button 用于和用户交互的一个按钮控件 //为Butt ...

  7. 一个Demo让你掌握Android所有控件

    一个Demo让你掌握Android所有控件 原文:一个Demo让你掌握Android所有控件 本文是转载收藏,侵删,出处:"安卓巴士"      下面给出实现各个组件的源代码: 1 ...

  8. Android常用控件有哪些?如何使用?

    Android常用控件介绍及使用 控件 TextView 显示文字,相当于Panel ImageView 显示图片 EditText 输入框,可编辑,可设置软键盘方式 Button 按钮,可附带图片 ...

  9. Android学习--02(猜猜我的星座App源码+Android常用控件TextView+EditText+Button+ImangeView+DatePicker+App间通信+跳转页面)

    猜猜我的星座App 1 Android常用控件 1.1 TextView控件 1.1.1 简介 1.1.2属性 1.1.3 扩展属性 1.1.4 TextView的使用方法 1.1.5总结 1.2 E ...

最新文章

  1. github提交代码却没有显示绿格子
  2. Verilog HDL 使用规范(一)
  3. Mac+docker+flask
  4. new,delete总结
  5. 机器学习算法加强——贝叶斯网络
  6. Bash 中的特殊字符大全
  7. openfalcon架构及相关服务配置详解
  8. McGill微软将卷积操作加入到ViT中,捕获更详细的局部信息!准确率达87.7%!代码已开源!...
  9. linux内核数据结构实现--链表、队列和哈希
  10. inputType属性
  11. TensorFlow.js 来了!浏览器上线机器学习功能
  12. 奥特曼传奇英雄存档丢了怎么找回_热血传奇:法师前期跨级刷怪到底划不划算?...
  13. Git 小问题:fatal: not a git repository (or any of the parent directories): .git
  14. java代码自动生成,在线生成非常好用收藏
  15. 参考文献的引用的格式
  16. JFLASH添加华大型号详细教程
  17. 【⭐阅读推荐指数:5颗星★★★★★⭐】关于多副本纠删码,你想知道的全都在这里
  18. 除了搜岛国老师的作品,以图搜图还有什么骚操作?
  19. 1、Python3.9版本官网下载安装教程
  20. 计算机切换用户屏幕闪,小编教您Win10切换用户后闪屏的具体办法

热门文章

  1. C# 获取配置文件节点值
  2. java中filter的用法
  3. vue路由添加.html,怎么使用VueRouter的addRoutes方法实现动态添加用户的权限路由
  4. python反编译exe_实战 Python3.7+64位 Exe 反编译
  5. 影响计算机的速度有哪些,影响电脑速度的硬件有哪些
  6. 疯狂的java 目录_疯狂创客圈 JAVA 高并发 总目录
  7. 程序人生:硬件工程师应记住的10个技巧
  8. 写给新入行程序员的10条建议
  9. MySQL存储树形数据优化技笔记
  10. WebBrowser控件的常用方法、属性和事件