zoukankan      html  css  js  c++  java
  • 系出名门Android(7) 控件(View)之ZoomControls, Include, VideoView, WebView, RatingBar, Tab, Spinner, Chronometer, ScrollView

    [索引页]
    [源码下载]


    系出名门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
    [源码下载]
  • 相关阅读:
    UOJ #455 [UER #8]雪灾与外卖 (贪心、模拟费用流)
    Codeforces 482E ELCA (LCT)
    Codeforces 798D Mike and distribution (构造)
    AtCoder AGC017C Snuke and Spells
    HDU 6089 Rikka with Terrorist (线段树)
    HDU 6136 Death Podracing (堆)
    AtCoder AGC032D Rotation Sort (DP)
    jenkins+python+kubectl实现批量更新k8s镜像
    Linux 下载最新kubectl版本的命令:
    jenkins X 和k8s CI/CD
  • 原文地址:https://www.cnblogs.com/webabcd/p/1656414.html
Copyright © 2011-2022 走看看