触摸旋转3D ImageView
这里写图片描述
public class TwoActivity extends AppCompatActivity {
// 当前显示的bitmap对象
private static Bitmap bitmap;
// 图片容器
private ImageView imageView;
// 开始按下位置
private int startX;
// 当前位置
private int currentX;
// 资源图片集合
private int[] srcs = new int[] { R.mipmap.yuan1_f, R.mipmap.yuan1_z };
private Camera mCamera;
private Matrix mMatrix;
private float centerX; // 中心点x
private float centerY; // 中心点y
private boolean isFontBg = true;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layout_3d);
mCamera = new Camera();
mMatrix = new Matrix();
imageView = (ImageView) findViewById(R.id.image1);
imageView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
startX = (int) event.getX();
break;
case MotionEvent.ACTION_MOVE:
currentX = (int) event.getX();
int disX = currentX - startX;
drawScreen(disX);
// 重置起始位置
startX = (int) event.getX();
break;
}
return true;
}
});
}
// 向右滑动修改资源
private void modifySrcR() {
mCamera.save();
if(!isFontBg){
isFontBg = true;
// 向右滑动修改资源
bitmap = BitmapFactory.decodeResource(getResources(), srcs[0]);
imageView.setImageBitmap(bitmap);
// 初始化背面防止图片颠倒