Android实现图片随手指旋转功能在View中进行重绘,主要是通过计算角度及距离来实现。实现类代码如下:package
Android实现图片随手指旋转功能
在View中进行重绘,主要是通过计算角度及距离来实现。实现类代码如下:
package com.example.roatedemo;import com.example.roatedemo.RotateView.RotateViewListener;import android.app.Activity;import android.content.Context;import android.os.Bundle;import android.util.DisplayMetrics;import android.util.Log;import android.widget.Toast;public class MainActivity extends Activity implements RotateViewListener{RotateView rotateView;String TAG="MainActivity";Context mContext;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);mContext = this;int height,width;DisplayMetrics displayMetrics = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);height = displayMetrics.heightPixels;width = displayMetrics.widthPixels;Log.i(TAG, "height:"+height);Log.i(TAG, "width:"+width);rotateView = new RotateView(getApplicationContext(), width/2, height/3, 150,this);setContentView(rotateView);}@Overridepublic void onModClick(int mode) {String[] clickStrings = new String[] { "1被点击", "2被点击","3被点击" };Toast.makeText(mContext, clickStrings[mode], 0).show();}@Overridepublic void onModChange(int mode) {String[] clickStrings = new String[] { "切换到1", "切换到2","切换到3" };Toast.makeText(mContext, clickStrings[mode], 0).show();}}布局文件默认即可。
除了实现图片旋转,还实现将图片切成3部分,每部分120度,每转动120度切换一个模式,点击每个部分均有响应事件回调到主界面。涉及保密,图片不给在此给出。
