zoukankan      html  css  js  c++  java
  • 控件(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

    代码

    <?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");
        }
    }

  • 相关阅读:
    多任务处理:控制默认行为
    多任务处理:管理调度Executor 接口
    多任务处理:服务器协议
    自己来做服务级的木马后门
    IBM ThinkPad
    韩国地名词汇/ 한국지명어휘(注册跑跑韩服有用)1
    EXE程序的自删除实现
    IBM ThinkPad
    EXE程序的自删除实现
    用VBScript实现对Windows注册表的修改
  • 原文地址:https://www.cnblogs.com/wzh206/p/1723374.html
Copyright © 2011-2022 走看看