Android学习笔记7

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

代码

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

 

阅读更多
个人分类: Android(安卓)
博主设置当前文章不允许评论。

Java JDK7 学习笔记,完整扫描版

2013年12月09日 189.07MB 下载

Java JDK 7学习笔记 PDF

2014年03月26日 7.14MB 下载

Android学习笔记

2011年09月08日 1007KB 下载

android 学习笔记doc

2011年11月12日 118KB 下载

Java JDK 7学习笔记源代码

2014年07月19日 530KB 下载

android JNI 学习笔记.doc

2012年03月03日 37KB 下载

Java JDK7学习笔记2013新版PDF

2013年05月20日 65MB 下载

没有更多推荐了,返回首页

不良信息举报

Android学习笔记7

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭