您的位置:首页 > 移动开发 > Android开发

Android 手势滑动,多点触摸放大缩小图片

2015-10-26 13:30 543 查看
效果展示:

package com.basecontrol.ui;

import com.basecontrol.view.ImageControl;
import com.basecontrol.view.ImageControl.ICustomMethod;
import com.example.basecontrol.R;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.Rect;
import android.graphics.drawable.BitmapDrawable;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;

public class ImageViewActivity extends Activity
{

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.bc_common_image_view);
findView();
}

public void onWindowFocusChanged(boolean hasFocus)
{
super.onWindowFocusChanged(hasFocus);
init();
};

ImageControl imgControl;
LinearLayout llTitle;
TextView tvTitle;
private void findView()
{
imgControl=(ImageControl) findViewById(R.id.common_imageview_imageControll);
llTitle=(LinearLayout) findViewById(R.id.common_iamgeview_llTitle);
tvTitle=(TextView) findViewById(R.id.common_imageview_title);
}

private void init() {
tvTitle.setText("图片测试");
// 这里可以为imgcontrol的图片路径动态赋值
// ............

Bitmap bmp;
if (imgControl.getDrawingCache() != null) {
bmp = Bitmap.createBitmap(imgControl.getDrawingCache());
} else {
bmp = ((BitmapDrawable)imgControl.getDrawable()).getBitmap();
}
Rect frame = new Rect();
getWindow().getDecorView().getWindowVisibleDisplayFrame(frame);
int statusBarHeight = frame.top;
int screenW = this.getWindowManager().getDefaultDisplay().getWidth();
int screenH = this.getWindowManager().getDefaultDisplay().getHeight()
- statusBarHeight;
if (bmp != null) {
imgControl.imageInit(bmp, screenW, screenH, statusBarHeight,
new ICustomMethod() {
@Override
public void customMethod(Boolean currentStatus) {
// 当图片处于放大或缩小状态时,控制标题是否显示
if (currentStatus) {
llTitle.setVisibility(View.GONE);
} else {
llTitle.setVisibility(View.VISIBLE);
}
}
});
}
else
{
Toast.makeText(ImageViewActivity.this, "图片加载失败,请稍候再试!", Toast.LENGTH_SHORT)
.show();
}

}
@Override
public boolean onTouchEvent(MotionEvent event) {
switch (event.getAction()&MotionEvent.ACTION_MASK) {
case MotionEvent.ACTION_DOWN:
imgControl.mouseDown(event);
break;
case MotionEvent.ACTION_POINTER_DOWN:
imgControl.mousePointDown(event);
break;
case MotionEvent.ACTION_MOVE:
imgControl.mouseMove(event);
break;
case MotionEvent.ACTION_UP:
imgControl.mouseUp();
break;
}
return super.onTouchEvent(event);
}
}


ImageViewActivity

嗯,就酱…………
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: