当前位置:首页 » 安卓系统 » android手势缩放

android手势缩放

发布时间: 2022-12-10 04:53:06

1. android 自定义相机拍照界面 手势设置焦距问题

这个拍照界面是每个厂家的ROM都不一样的,如果你喜欢小米的拍照界面,你可以把手机系统刷成小米ROM,不能刷的话,你也可以通过第三方APP解决,比如美图秀秀,360拍照都有手势设置焦距的功能。

2. appcan平台中使用百度地图,在android手机上百度地图无法手势缩放

你看看你手机型号,不同型号的手机由于Android系统不同(现在许多手机公司都有自己的系统,比如小米手机的小米系统,魅族的手机系统,三星的等等.....都是基于Android 开发的 但是有些模块被改动,所以会出现对应的不同版本),所以你看看你手机型号 找到自己的手机应用!你也可以刷不同的系统

3. Android 自定义ImageView添加手势后,移动或缩放怎么判断越界的问题

初始化的时候已经进行了缩放

java code

//第一个图片
float scaleX = w / leftImage.getWidth();
float scaleY = h / leftImage.getHeight();
leftMinScale = scaleX > scaleY ? scaleX : scaleY;
leftMatrix.setScale(leftMinScale, leftMinScale);

4. android手机有哪些手势操作,能具体点吗

android手机有哪些手势操作:

  1. “点击”,也叫“单击”,即轻触屏幕一下。无论是搭载何种操作系统的触控手机,这个都是出现频率最高的动作。点击主要用来打开程序,还有功能表(抽屉)。

  2. “点住”,也叫“长按”、“按住”,按住屏幕超过两秒。此动作通常用来调出“菜单”。某些应用程序在界面空白处长按可以调出菜单;某些条目长按也可以弹出菜单,比如当您需要转发短信时,在短信对话界面长按短信内容,必然会弹出菜单,菜单中通常会有“转发”选项。

    在进行文字编辑时,点住文字部分,然后调出光标进行精准定位。

    当然,此动作也可用于多选、快捷视图,比如在“图库(相册)”中,默认视图下,长按相册文件夹、可对文件夹进行多选操作;打开相册文件夹后,长按照片,同样可对照片进行多选操作,选择完毕后可进行批量操作(发送、删除)。

  3. “拖动”,准确来说应该叫做“按住并拖动”。“拖动”主屏幕编辑时的常见动作,比如对桌面“小组件”或者“图标”进行位置编辑时。另外也用于进度定位,比如播放音乐或者视频时,需要常常拖动进度条。

  4. “双击”就是短时间内连续双击屏幕两次,主要用于快速缩放,比如浏览图片时双击可以快速放大,再次双击可以复位;浏览网页时,对文章正文部分双击可使文字自适应屏幕,当然某些视频播放器双击可切换至全屏模式。

  5. 滑动,也算是一个常见操作。主要用于查看屏幕无法完全显示的页面,功能类似鼠标的滚轮。此操作主要用于查看图片、网页、纯文本(短信、邮件、笔记)。

    某些视频播放器还定义了特殊功能,比如亮度调节、快进快退,比如“MX Player”、“VPlayer”。

  6. “缩放”动作,是查看图片、网页时最常见的操作,照相时也可使用缩放手势来进行调焦。在MX Player中,甚至可以将视频画面进行缩放。

5. android 开发视频界面,视频如何可以像操作图片一样,双击放大、拖动、手势缩放吗

貌似我的酷派手机播放视频就可以放大,拖动。是可以实现的,但是没弄过呢,实现了别忘了分享下额。。

6. 如何通过手势实现android view 的 缩放 平移

代码主要分两部分,一个activity一个view,代码如下:

packagecom.example.touch;

importandroid.app.Activity;
importandroid.os.Bundle;

{
/**.*/
@Override
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
TouchImageViewimg=newTouchImageView(this);
setContentView(img);
}
}



packagecom.example.touch;

importandroid.graphics.Bitmap;
importandroid.graphics.Bitmap.Config;
importandroid.graphics.BitmapFactory;
importandroid.graphics.Canvas;
importandroid.graphics.Matrix;
importandroid.graphics.PointF;
importandroid.util.DisplayMetrics;
importandroid.util.FloatMath;
importandroid.view.MotionEvent;
importandroid.widget.ImageView;

{

floatx_down=0;
floaty_down=0;
PointFstart=newPointF();
PointFmid=newPointF();
floatoldDist=1f;
floatoldRotation=0;
Matrixmatrix=newMatrix();
Matrixmatrix1=newMatrix();
MatrixsavedMatrix=newMatrix();

privatestaticfinalintNONE=0;
privatestaticfinalintDRAG=1;
privatestaticfinalintZOOM=2;
intmode=NONE;

booleanmatrixCheck=false;

intwidthScreen;
intheightScreen;

Bitmapgintama;

publicTouchImageView(){
super(activity);
gintama=BitmapFactory.decodeResource(getResources(),R.drawable.gintama);

DisplayMetricsdm=newDisplayMetrics();
activity.getWindowManager().getDefaultDisplay().getMetrics(dm);
widthScreen=dm.widthPixels;
heightScreen=dm.heightPixels;

matrix=newMatrix();
}

protectedvoidonDraw(Canvascanvas){
canvas.save();
canvas.drawBitmap(gintama,matrix,null);
canvas.restore();
}

publicbooleanonTouchEvent(MotionEventevent){
switch(event.getAction()&MotionEvent.ACTION_MASK){
caseMotionEvent.ACTION_DOWN:
mode=DRAG;
x_down=event.getX();
y_down=event.getY();
savedMatrix.set(matrix);
break;
caseMotionEvent.ACTION_POINTER_DOWN:
mode=ZOOM;
oldDist=spacing(event);
oldRotation=rotation(event);
savedMatrix.set(matrix);
midPoint(mid,event);
break;
caseMotionEvent.ACTION_MOVE:
if(mode==ZOOM){
matrix1.set(savedMatrix);
floatrotation=rotation(event)-oldRotation;
floatnewDist=spacing(event);
floatscale=newDist/oldDist;
matrix1.postScale(scale,scale,mid.x,mid.y);//缩放
matrix1.postRotate(rotation,mid.x,mid.y);//旋转
matrixCheck=matrixCheck();
if(matrixCheck==false){
matrix.set(matrix1);
invalidate();
}
}elseif(mode==DRAG){
matrix1.set(savedMatrix);
matrix1.postTranslate(event.getX()-x_down,event.getY()
-y_down);//平移
matrixCheck=matrixCheck();
matrixCheck=matrixCheck();
if(matrixCheck==false){
matrix.set(matrix1);
invalidate();
}
}
break;
caseMotionEvent.ACTION_UP:
caseMotionEvent.ACTION_POINTER_UP:
mode=NONE;
break;
}
returntrue;
}

privatebooleanmatrixCheck(){
float[]f=newfloat[9];
matrix1.getValues(f);
//图片4个顶点的坐标
floatx1=f[0]*0+f[1]*0+f[2];
floaty1=f[3]*0+f[4]*0+f[5];
floatx2=f[0]*gintama.getWidth()+f[1]*0+f[2];
floaty2=f[3]*gintama.getWidth()+f[4]*0+f[5];
floatx3=f[0]*0+f[1]*gintama.getHeight()+f[2];
floaty3=f[3]*0+f[4]*gintama.getHeight()+f[5];
floatx4=f[0]*gintama.getWidth()+f[1]*gintama.getHeight()+f[2];
floaty4=f[3]*gintama.getWidth()+f[4]*gintama.getHeight()+f[5];
//图片现宽度
doublewidth=Math.sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
//缩放比率判断
if(width<widthScreen/3||width>widthScreen*3){
returntrue;
}
//出界判断
if((x1<widthScreen/3&&x2<widthScreen/3
&&x3<widthScreen/3&&x4<widthScreen/3)
||(x1>widthScreen*2/3&&x2>widthScreen*2/3
&&x3>widthScreen*2/3&&x4>widthScreen*2/3)
||(y1<heightScreen/3&&y2<heightScreen/3
&&y3<heightScreen/3&&y4<heightScreen/3)
||(y1>heightScreen*2/3&&y2>heightScreen*2/3
&&y3>heightScreen*2/3&&y4>heightScreen*2/3)){
returntrue;
}
returnfalse;
}

//触碰两点间距离
privatefloatspacing(MotionEventevent){
floatx=event.getX(0)-event.getX(1);
floaty=event.getY(0)-event.getY(1);
returnFloatMath.sqrt(x*x+y*y);
}

//取手势中心点
privatevoidmidPoint(PointFpoint,MotionEventevent){
floatx=event.getX(0)+event.getX(1);
floaty=event.getY(0)+event.getY(1);
point.set(x/2,y/2);
}

//取旋转角度
privatefloatrotation(MotionEventevent){
doubledelta_x=(event.getX(0)-event.getX(1));
doubledelta_y=(event.getY(0)-event.getY(1));
doubleradians=Math.atan2(delta_y,delta_x);
return(float)Math.toDegrees(radians);
}

//将移动,缩放以及旋转后的图层保存为新图片
//本例中没有用到该方法,需要保存图片的可以参考
publicBitmapCreatNewPhoto(){
Bitmapbitmap=Bitmap.createBitmap(widthScreen,heightScreen,
Config.ARGB_8888);//背景图片
Canvascanvas=newCanvas(bitmap);//新建画布
canvas.drawBitmap(gintama,matrix,null);//画图片
canvas.save(Canvas.ALL_SAVE_FLAG);//保存画布
canvas.restore();
returnbitmap;
}

}

7. 如何解决 Android WebView 里放大与手势滑动的冲突问题

android手势冲突解决方法如下:方法一:如代码中含有ViewFlipper、ScrollView、ViewPager等有手势反应的组件,且是用FrameLayout包裹的;但却只想触发其中某个组件的手势反应,建议用View.setVisibility()方法,屏蔽掉ViewFlipper、ScrollView、ViewPager等有手势反应组件(比如ViewFlipper.setVisibility()),到合适的时候,再将被屏蔽的组件显示出来。方法二:如代码中含有ViewFlipper、ScrollView、ViewPager等有手势反应的组件;但却想根据不同的手势触发不同的组件手势反应,建议继承并重写以上组件,并用ViewGroup.onInterceptTouchEvent方法,拦截所有手势,进而根据不同的手势触发不同的组件。

8. android中的webview怎么才能支持双指手势的放大缩小呢,我说android的不是苹果

支持多点触控就可以了
webview这个软件本身就不支持多点触控..

热点内容
pythonsphinx使用 发布:2025-03-17 01:32:55 浏览:132
python类型int 发布:2025-03-17 01:29:23 浏览:148
我的世界18服务器小游戏ip 发布:2025-03-17 01:28:59 浏览:711
魔兽的音乐在哪个文件夹 发布:2025-03-17 01:22:45 浏览:931
大转盘算法 发布:2025-03-17 01:17:44 浏览:376
瓶盖源码 发布:2025-03-17 01:13:14 浏览:244
屏幕算法研究 发布:2025-03-17 01:02:38 浏览:963
服务器08系统怎么切换界面 发布:2025-03-17 01:02:34 浏览:421
超市的职位配置有哪些 发布:2025-03-17 01:01:05 浏览:434
贪心算法c语言 发布:2025-03-17 00:57:41 浏览:848