Androidで、ズームコントロール
指2本でピンチイン、ピンチアウトするのではなく
+-ボタンを設置して拡大縮小するときに使う
これを使うメリットは、片手操作が可能になること
ズームコントロールを使うには、
ZoomControlsを使う
ズームイベントは
setOnZoomClickListener
ズームアウトイベントは
setOnZoomOutClickListener
で検出できる
まずは、レイアウトファイルで定義
とりあえず、今回はわかりやすさ重視のため
TextViewの文字のズーム
応用としては、写真とかカメラ画像など
色々使える
<TextView android:id="@+id/text" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center"/> <ZoomControls android:id="@+id/zoomcontrols" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_alignParentRight="true"/>
android:layout_alignParentBottom=”true”
android:layout_alignParentRight=”true”
を設定することで、画面右下に
ズームボタンを設置
処理は、Javaで書くことになるので
まずは、Zoomcontrolsのインスタンス取得
final ZoomControls zc = (ZoomControls)findViewById(R.id.zoomcontrols); TextView tvContents = (TextView)findViewById(R.id.text);
次に、ズームイン処理
setOnZoomClickListenerをセットして
+ボタンを押したときの動作を設定
zc.setOnZoomClickListener(new OnClickListener(){ @Override public void onClick(View v){ scale +=0.1; if(scale > 4) scale =4; tvContents.setScaleX(scale); tvContents.setScaleY(scale); tvContents.setText(String.valueOf(scale)); } });
次に、ズームアウト処理
これは、
setOnZoomOutClickListener
をセットすることで、
-ボタンを押したときの動作を設定
zc.setOnZoomOutClickListener(new OnClickListener(){
@Override
public void onClick(View v){
scale -=0.1;
if(scale <= 1) scale =1;
tvContents.setScaleX(scale);
tvContents.setScaleY(scale);
tvContents.setText(String.valueOf(scalef));
}
});
[/java]
ZoomControlsは、ボタン設置はできるけど
拡大縮小機能は自分でズーム倍率を作成する必要があるので注意