Android 用zoom放大缩小图片Word文档下载推荐.docx

上传人:b****4 文档编号:17858035 上传时间:2022-12-11 格式:DOCX 页数:22 大小:22.96KB
下载 相关 举报
Android 用zoom放大缩小图片Word文档下载推荐.docx_第1页
第1页 / 共22页
Android 用zoom放大缩小图片Word文档下载推荐.docx_第2页
第2页 / 共22页
Android 用zoom放大缩小图片Word文档下载推荐.docx_第3页
第3页 / 共22页
Android 用zoom放大缩小图片Word文档下载推荐.docx_第4页
第4页 / 共22页
Android 用zoom放大缩小图片Word文档下载推荐.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

Android 用zoom放大缩小图片Word文档下载推荐.docx

《Android 用zoom放大缩小图片Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《Android 用zoom放大缩小图片Word文档下载推荐.docx(22页珍藏版)》请在冰豆网上搜索。

Android 用zoom放大缩小图片Word文档下载推荐.docx

pre 

name="

code"

class="

java"

>

android.content.Context;

android.graphics.Canvas;

android.graphics.drawable.Drawable;

android.view.KeyEvent;

android.view.View;

Zoom 

View 

private 

Drawable 

image;

int 

zoomControler=20;

Zoom(Context 

context) 

super(context);

image=context.getResources().getDrawable(R.drawable.icon);

setFocusable(true);

protected 

onDraw(Canvas 

canvas) 

// 

TODO 

Auto-generated 

method 

stub 

super.onDraw(canvas);

//here 

can 

control 

width 

and 

height 

of 

images........ 

this 

line 

very 

important 

image.setBounds((getWidth()/2)-zoomControler, 

(getHeight()/2)-zoomControler, 

(getWidth()/2)+zoomControler, 

(getHeight()/2)+zoomControler);

image.draw(canvas);

boolean 

onKeyDown(int 

keyCode, 

KeyEvent 

event) 

if(keyCode==KeyEvent.KEYCODE_DPAD_UP)// 

zoom 

in 

zoomControler+=10;

if(keyCode==KeyEvent.KEYCODE_DPAD_DOWN) 

out 

zoomControler-=10;

if(zoomControler<

10) 

zoomControler=10;

invalidate();

return 

true;

packagecom.min.Test_Gallery;

importandroid.app.Activity;

importandroid.graphics.Bitmap;

importandroid.graphics.BitmapFactory;

importandroid.graphics.Color;

importandroid.graphics.Matrix;

importandroid.os.Bundle;

importandroid.util.DisplayMetrics;

importandroid.util.Log;

importandroid.view.GestureDetector;

importandroid.view.KeyEvent;

importandroid.view.MotionEvent;

importandroid.view.View;

importandroid.view.GestureDetector.OnGestureListener;

importandroid.view.View.OnTouchListener;

importandroid.widget.Button;

importandroid.widget.FrameLayout;

importandroid.widget.ImageView;

importandroid.widget.LinearLayout;

importandroid.widget.Toast;

publicclassDisplayImageextendsActivityimplementsOnTouchListener,OnGestureListener{

privatestaticfinalStringTAG="

DisplayImage"

;

privatestaticfinalintFLING_MIN_DISTANCE=100;

privatestaticfinalintFLING_MIN_VELOCITY=200;

/*相关变量声明*/

privateImageViewmImageView;

privateButtonmButton01;

privateButtonmButton02;

privateFrameLayoutlayout1;

privateLinearLayoutlayoutImage;

privateBitmapbmp;

privateintid=0;

privateintdisplayWidth;

privateintdisplayHeight;

privatefloatscaleWidth=1;

privatefloatscaleHeight=1;

privateGestureDetectormGestureDetector;

/**Calledwhentheactivityisfirstcreated.*/

@Override

publicvoidonCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);

/*加载display.xmlLayout*/

setContentView(R.layout.display);

/*取得屏幕分辨率大小*/

DisplayMetricsdm=newDisplayMetrics();

getWindowManager().getDefaultDisplay().getMetrics(dm);

displayWidth=dm.widthPixels;

displayHeight=dm.heightPixels;

/*初始化相关变量*/

Bundlebundle=this.getIntent().getExtras();

IntegerimageId=bundle.getInt("

imageId"

);

Log.i(TAG,"

onCreate,imageId="

+imageId);

bmp=BitmapFactory.decodeResource(getResources(),imageId);

mImageView=(ImageView)findViewById(R.id.myImageView);

mImageView.setImageBitmap(bmp);

mImageView.setOnTouchListener(this);

mImageView.setLongClickable(true);

layout1=(FrameLayout)findViewById(R.id.layout1);

layoutImage=(LinearLayout)findViewById(R.id.layoutImage);

mButton01=(Button)findViewById(R.id.myButton1);

mButton02=(Button)findViewById(R.id.myButton2);

/*缩小按钮onClickListener*/

mButton01.setOnClickListener(newButton.OnClickListener(){

@Override

publicvoidonClick(Viewv){

small();

}

});

/*放大按钮onClickListener*/

mButton02.setOnClickListener(newButton.OnClickListener(){

@Override

big();

}

}

//用户轻触触摸屏,由1个MotionEventACTION_DOWN触发

publicbooleanonDown(MotionEvente){

//TODOAuto-generatedmethodstub

//Toast.makeText(this,"

onDown"

Toast.LENGTH_SHORT).show();

onDown..."

returnfalse;

}

/*用户按下触摸屏、快速移动后松开,由1个MotionEventACTION_DOWN,

*多个ACTION_MOVE,1个ACTION_UP触发

*参数解释:

*e1:

第1个ACTION_DOWNMotionEvent

*e2:

最后一个ACTION_MOVEMotionEvent

*velocityX:

X轴上的移动速度,像素/秒

*velocityY:

Y轴上的移动速度,像素/秒

*触发条件:

*X轴的坐标位移大于FLING_MIN_DISTANCE,且移动速度大于FLING_MIN_VELOCITY个像素/秒

*@seeandroid.view.GestureDetector$OnGestureListener#onFling(android.view.MotionEvent,android.view.MotionEvent,float,float)

*/

publicbooleanonFling(MotionEvente1,MotionEvente2,floatvelocityX,

floatvelocityY){

onFling..."

if(e1.getX()-e2.getX()>

FLING_MIN_DISTANCE

&

&

Math.abs(velocityX)>

FLING_MIN_VELOCITY){

//Flingleft

Toast.makeText(this,"

FlingLeft"

}elseif(e2.getX()-e1.getX()>

//Flingright

FlingRight"

//用户长按触摸屏,由多个MotionEventACTION_DOWN触发

publicvoidonLongPress(MotionEvente){

onLongPress..."

//用户按下触摸屏,并拖动,由1个MotionEventACTION_DOWN,多个ACTION_MOVE触发

publicbooleanonScroll(MotionEvente1,MotionEvente2,floatdistanceX,

floatdistanceY){

onScroll..."

//用户轻触触摸屏,尚未松开或拖动,由一个1个MotionEventACTION_DOWN触发

//注意和onDown()的区别,强调的是没有松开或者拖动的状态

publicvoidonShowPress(MotionEvente){

onShowPress..."

//用户(轻触触摸屏后)松开,由一个1个MotionEventACTION_UP触发

publicbooleanonSingleTapUp(MotionEvente){

onSingleTapUp..."

publicbooleanonTouch(Viewv,MotionEventevent){

onTouch..."

//Setbuttonvisible

mButton01.setVisibility(View.VISIBLE);

mButton02.setVisibility(View.VISIBLE);

returnmGestureDetector.onTouchEvent(event);

//@Override

//publicbooleanonTouchEvent(MotionEventevent){

////TODOAuto-generatedmethodstub

//super.onTouchEvent(event);

//

//Log.i(TAG,"

onTouchEvent"

////Setbuttonvisible

//mButton01.setVisibility(View.VISIBLE);

//mButton02.setVisibility(View.VISIBLE);

//returntrue;

//}

publicbooleanonKeyDown(intkeyCode,KeyEventevent){

super.onKeyDown(keyCode,event);

onKeyDown..."

returntrue;

/*图片缩小的method*/

privatevoidsmall(){

intbmpWidth=bmp.getWidth();

intbmpHeight=bmp.getHeight();

bmpWidth="

+bmpWidth+"

bmpHeight="

+bmpHeight);

/*设置图片缩小的比例*/

doublescale=0.8;

/*计算出这次要缩小的比例*/

scaleWidth=(float)(scaleWidth*scale);

scaleHeight=(float)(scaleHeight*scale);

/*产生reSize后的Bitmap对象*/

Matrixmatrix=newMatrix();

matrix.postScale(scaleWidth,scaleHeight);

BitmapresizeBmp=Bitmap.createBitmap(bmp,0,0,bmpWidth,

bmpHeight,matrix,true);

if(id==0){

/*如果是第一次按,就删除原来默认的ImageView*/

layoutImage.removeView(mImageView);

}else{

/*如果不是第一次按,就删除上次放大缩小所产生的ImageView*/

layoutImage.removeView((ImageView)findViewById(id));

}

/*产生新的ImageView,放入reSize的Bitmap对象,再放入Layout中*/

id++;

ImageViewimageView=newImageView(this);

imageView.setId(id);

imageView.setImageBitmap(resizeBmp);

layoutImage.addView(imageView);

imageView.getWidth()="

+imageView.getWidth()

+"

imageView.getHeight()="

+imageView.getHeight());

setContentView(layout1);

/*因为图片放到最大时放大按钮会disable,所以在缩小时把它重设为enable*/

mButton02.setEnabled(true);

mButton02.setTextColor(Color.MAGENTA);

/*图片放大的method*/

privatevoidbig(){

/*设置图片放大的比例*/

doublescale=1.25;

/*计算这次要放大的比例*/

scaleWidth=(float)(scaleWidth*scale);

scaleHeight=(float)(scaleHeight*scale);

/*如果是第一次按,就删除原来设置的ImageView*/

/*如果不是第一次按,就删除上次放大缩小所产生的ImageView*/

}

/*如果再放大会超过屏幕大小,就把Buttondisable*/

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1