?
本文檔使用 php中文網(wǎng)手冊 發(fā)布
ZoomControls
聯(lián)系譯者:huibin.jia@gmail.com
2010-10-22
版本:Android 2.2 r1
一、類結(jié)構(gòu)
???????? public class ZoomControls extends LinearLayout
?
???????? java.lang.Object
?????????????????? android.view.View
? ???? ?????????????????? android.view.ViewGroup
???????????????????????????????????? android.widget.LinearLayout
?????????????????????????????????????????????? android.widget.ZoomControls
?
二、概述
????????
ZoomControl顯示一個簡單的設(shè)置來控制縮放并回調(diào)已注冊的事件。
????????
三、公共方法
???????? public boolean hasFocus ()
???????? 如果這個視圖獲得了焦點就返回真。
?????????????????? 返回值
??????????????????????????? 如果這個視圖獲得了焦點就返回真。
?
???????? public void hide ()
???????? 這個方法可以將zoomControl視圖隱藏起來,不顯示。
?
???????? public boolean onTouchEvent (MotionEvent event)
??? 這個方法處理觸摸屏移動事件。
?????????????????? 參數(shù)
??????????????????????????? event該移動事件.
?????????????????? 返回值
?????????????????? 如果是true,該事件是觸摸,反之返回false。
?
???????? public void setIsZoomInEnabled (boolean isEnabled)
???????? 這個方法可以設(shè)置放大按鈕是否可用。
?????????????????? 參數(shù)
?????????????????? isEnabled?如果是true,放大按鈕可用,反之不可用(按鈕變成灰色)。
?
???????? public void setIsZoomOutEnabled (boolean isEnabled)
???????? 這個方法可以設(shè)置縮小按鈕是否可用。
?????? 參數(shù)
?????????????????? isEnabled??如果是true縮小按鈕可用,反之不可用(按鈕變成灰色)。
?
???????? public void setOnZoomInClickListener (View.OnClickListener listener)
???????? 注冊放大監(jiān)聽器
?????????????????? 參數(shù)
Listener 點擊放大按鈕事件觸發(fā)的事件。(譯者注:為OnClickListener的實例,可以復(fù)寫onClick方法,里面為具體的響應(yīng)動作。我感覺這個方法還有下面的方法是本類的重點,我們可以在里面實現(xiàn)相應(yīng)的動作,來響應(yīng)我們的事件。)
?
???????? public void setOnZoomOutClickListener (View.OnClickListener listener)
???????? 注冊縮小監(jiān)聽器
?????????????????? 參數(shù)
Listener點擊縮小按鈕事件觸發(fā)的事件。(譯者注:為OnClickListener的實例,可以復(fù)寫onClick方法,里面為具體的響應(yīng)動作。)
?
???????? public void setZoomSpeed (long speed)
設(shè)置縮放速度。
?????????????????? 參數(shù)
??????????????????????????? Speed 縮放速度
?
???????? public void show ()?
???????? 這個方法和hide方法對應(yīng),用來顯示ZoomControl。
?
四、代碼
???????? 聲明:這個代碼部分思路來源于網(wǎng)絡(luò)上一個博客,謹(jǐn)以此來解釋,特此聲明。
package com.jhb.zoomcontroltest;
?
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 ZoomCotroltest extends Activity {
?
??????? @Override
??????? protected void onCreate(Bundle savedInstanceState) {
??????????????? // TODO Auto-generated method stub
??????????????? super.onCreate(savedInstanceState);
??????????????? this.setContentView(R.layout.main);
?
??????????????? setTitle("ZoomControls");
?
??????????????? ZoomControls zoomControls = (ZoomControls) this.findViewById(R.id.zoomControls);
??????????????? zoomControls.hide();
??????????????? zoomControls.show();
??????????????? // setOnZoomInClickListener() - 響應(yīng)單擊放大按鈕的事件
??????????????? zoomControls.setIsZoomInEnabled(true);
??????????????? zoomControls.setIsZoomOutEnabled(true);
??????????????? zoomControls.setOnZoomInClickListener(new OnClickListener() {
??????????????????????? public void onClick(View v) {
??????????????????????????????? Toast.makeText(ZoomCotroltest.this, "單擊了放大按鈕", Toast.LENGTH_SHORT).show();
??????????????????????? }
??????????????? });
????????????????
??????????????? // setOnZoomOutClickListener() - 響應(yīng)單擊縮小按鈕的事件
??????????????? zoomControls.setOnZoomOutClickListener(new OnClickListener() {
??????????????????????? public void onClick(View v) {
??????????????????????????????? Toast.makeText(ZoomCotroltest.this, "單擊了縮小按鈕", Toast.LENGTH_SHORT).show();????????
??????????????????????? }
??????????????? });
?
??????? }
}
?
它對應(yīng)的布局文件是下面這樣的:
<?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>