Android ZoomControls

分享到:

ZoomControls控件是一组缩放控件,同时包括"放大"和"缩小"两个按钮,就像把两个ZoomButton组合到了一起。ZoomControls控件主要通过setOnZoomInClickListener与setOnZoomOutClickListener这两个方法进行事件监听,下面通过例子了解ZoomControls的使用方法,这个例子中的TextView字号初始化大小为40px,每点击一次放大按钮字号+1px,每点击一次缩小按钮字号-1px。效果图如下:

正常大小如下图所示:

放大后效果如下图所示:

缩小后效果如下图所示:

主界面XMl布局代码:

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

         <TextView
          android:id="@+id/textView1"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:text="@string/hello_world" />

         <ZoomControls
          android:id="@+id/zoomControls1"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"/>

</LinearLayout>

Activity源码:

package com.my.androidtest;

import android.app.Activity;
import android.os.Bundle;
import android.util.TypedValue;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.TextView;
import android.widget.ZoomControls;

public class ZoomControlsActivity extends Activity {
          TextView textView;
          ZoomControls zoomControls;
          @Override
          protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_zoom_controls);
  
          textView=(TextView)this.findViewById(R.id.textView1);
          textView.setTextSize(TypedValue.COMPLEX_UNIT_PX, 40);
  
          zoomControls=(ZoomControls)this.findViewById(R.id.zoomControls1);
  
          //放大事件
          zoomControls.setOnZoomInClickListener(new OnClickListener(){
          @Override
          public void onClick(View arg0) {
          textView.setTextSize(TypedValue.COMPLEX_UNIT_PX, (float)(textView.getTextSize()+1));
          } 
          });
  
          //缩小事件
          zoomControls.setOnZoomOutClickListener(new OnClickListener(){
          @Override
          public void onClick(View arg0) {
          textView.setTextSize(TypedValue.COMPLEX_UNIT_PX, (float)(textView.getTextSize()-1));
          }
          });
  
          }
}

本例主要使用了ZoomControls控件的两个方法进行事件监听,
(1)setOnZoomInClickListener,注册放大监听事件,内部需要覆写onClick方法,自定义的逻辑代码写在onClick里面
(2) setOnZoomOutClickListener,注册缩小监听事件,内部需要覆写onClick方法,自定义的逻辑代码写在onClick里面
从这个例子可以看出ZoomControls控件并不具备直接缩放View的能力,只能判断出你的意图是想放大还是想缩小,最终实现View缩放需要在ZoomControls缩放事件中额外写代码来处理的。

昵    称:
验证码:

相关文档:

Android控件
Android基础知识
Android组件
Android实例