我必须实现图像缩放,我已经尝试了这么多代码.但我没有完全了解手势事件.我想实现当我们应用双击时,图像将根据触摸位置(事件x和y)进行缩放.我必须实现此时只有缩放没有泛.可以任何身体建议我吗?
编辑:实际上我已经用图像实现了viewflipper,如果我尝试应用平移和缩放效果,有时图像将被更改.我想为单击用户的位置实现缩放效果.
给我一些想法....
Problem:
可以轻松缩放图像和Web视图.但我想缩放整个活动.我怎样才能做到这一点?
Here, I provide wire-frame:
从这里你可以理解,我想做什么.
Request
如果您有任何解决方案,请分享.
谢谢.
有没有人知道在使用UIScrollView时暂时关闭缩放的方法?
我看到你可以使用以下方法禁用滚动:
self.scrollView.scrollEnabled = false;
Run Code Online (Sandbox Code Playgroud)
但我没有看到类似的缩放命令.有什么想法吗?
请参阅下面的每个部分,以三种不同的方式描述我的问题.希望能帮助人们回答.
问题:在给定原始比例点和比例因子的情况下,如果只有以缩放图像表示的坐标,如何在画布/用户空间中找到一对坐标?
实践中的问题:
我目前正在尝试复制应用程序中使用的缩放功能,例如图库/地图,当您可以缩放缩放/缩小时缩放移向夹点的中点.
在向下我保存缩放的中心点(基于当前屏幕的X,Y坐标).然后我在检测到"缩放"手势时执行此功能:
class ImageScaleGestureDetector extends SimpleOnScaleGestureListener {
@Override
public boolean onScale(ScaleGestureDetector detector) {
if(mScaleAllowed)
mCustomImageView.scale(detector.getScaleFactor(), mCenterX, mCenterY);
return true;
}
}
Run Code Online (Sandbox Code Playgroud)
CustomImageView的缩放功能如下所示:
public boolean scale(float scaleFactor, float focusX, float focusY) {
mScaleFactor *= scaleFactor;
// Don't let the object get too small or too large.
mScaleFactor = Math.max(MINIMUM_SCALE_VALUE, Math.min(mScaleFactor, 5.0f));
mCenterScaleX = focusX;
mCenterScaleY = focusY;
invalidate();
return true;
}
Run Code Online (Sandbox Code Playgroud)
通过覆盖onDraw方法来实现缩放图像的绘制,该方法在中心周围缩放画布并将图像绘制到其中.
@Override
public void onDraw(Canvas canvas) {
super.onDraw(canvas);
canvas.save();
canvas.translate(mCenterScaleX, mCenterScaleY);
canvas.scale(mScaleFactor, mScaleFactor);
canvas.translate(-mCenterScaleX, -mCenterScaleY);
mIcon.draw(canvas); …
Run Code Online (Sandbox Code Playgroud) 我有这个非常简单的形式:http://jsfiddle.net/TKb6M/91/.有时,当我使用Chrome放大或缩小时,输入边框会消失.例如,当我缩放到90%时,我得到:
当然,您的里程可能会有所不同.
如果你想知道这些<span>
标签,我按照" 如何使输入元素占据所有剩余水平空间"的建议添加它们?.
我的CSS有问题,还是Chrome错误?它似乎在Firefox上运行良好.我该怎么做才能避免这种行为?
谢谢.
我的搜索中没有找到答案,有几个答案,但它们对我不起作用.
我在地图上有2个标记,我正在使用LatLngBounds构建器,以便让相机缩放到正确的缩放级别以包含它们.一切都按预期工作,除了一件事,当2个标记真的很接近时,地图非常非常放大,很好,这种缩放水平没有任何意义.
LatLngBounds.Builder builder = new LatLngBounds.Builder();
builder.include(firstMarker.getPosition());
builder.include(secondMarker.getPosition());
LatLngBounds bounds = builder.build();
CameraUpdate cu = CameraUpdateFactory.newLatLngBounds(bounds, markerPadding);
Run Code Online (Sandbox Code Playgroud)
有没有办法强制一定程度的变焦,之后相机不会变焦?这样可以避免地图放大/缩小.基本上我使用15.0f作为缩放级别.如果点太远,我希望变焦适合它们.如果点越来越近,我不希望缩放级别超过15.0f.
我知道我可以使用Cx C- +进行放大/缩小,但这仅适用于当前文件.一旦我打开另一个文本,文本就会回到默认值,并且一遍又一遍地执行它真的很烦人.如何为当前的emacs会话保持全局缩放级别?
我知道如果你知道确切的字体大小,我可以在init文件中设置它,我不知道.另外,我不想让它保持永久性 - 我通常需要这个,当我没有外部屏幕几个小时或连接到投影仪同时进行演示时.
我有一个iphone和ipad的移动网站,我禁用用户缩放
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
Run Code Online (Sandbox Code Playgroud)
只要站点处于横向模式,这样就可以正常工作.网站的宽度正好是屏幕的宽度.然后,如果我将设备旋转到纵向模式,它会缩小,以便适合新的(较短的)宽度.这也没关系.
但是如果我将它旋转回横向模式,它会突然缩放到大约125%,这意味着现在可以进行水平滚动,并且自从最初禁用后无法进行缩放.
如何在旋转回景观时以100%变焦恢复?
谢谢!
我有一个图形被绘制在一个UIScrollView
.它是一个UIView
使用自定义子类CATiledLayer
作为其层的大型.
当我放大和缩小时UIScrollView
,我希望图形动态调整大小,就像我从图表返回时一样viewForZoomingInScrollView
.但是,Graph在新的缩放级别重绘自己,我想将变换比例重置为1x1,以便下次用户缩放时,变换从当前视图开始.如果我将转换重置为Identity in scrollViewDidEndZooming
,它可以在模拟器中工作,但会EXC_BAD_ACCSES
在设备上抛出.
这甚至都没有在模拟器上完全解决问题,因为下次用户放大时,变换将自身重置为它所处的任何缩放级别,因此看起来,如果我缩放到2x,例如,它突然达到4倍.当我完成缩放时,它以正确的比例结束,但实际的缩放行为看起来很糟糕.
首先:如何让图形在缩放后以1x1的标准比例重绘自己,如何在整个过程中进行平滑缩放?
编辑:新发现错误似乎是" [CALayer retainCount]: message sent to deallocated instance
"
我自己永远不会释放任何图层.在此之前,我甚至没有删除任何观点或任何内容.在缩放和旋转时抛出此错误.如果我在旋转之前删除对象并在之后重新添加它,它不会抛出异常.这不是缩放的选项.
我已经建立了一个非常基本的网站,其中包含#conaviner div,其中包含#navbar和#content.但是,当我放大或缩小时,#navbar会扭曲,如果我放大链接会被推到彼此之下而不是内联.如果我缩小,链接之间会添加太多填充.我怎么能阻止这个?
HTML:
<div id="navbar">
<ul>
<li><a href="index.html">Home</a></li>
<li><a href="top.html">Top</a></li>
<li><strong><a href="free.html">FREE</a></strong></li>
<li><a href="photo.html">Photo</a></li>
<li><a href="about.html">About</a></li>
<li><a href="contact.html">Contact Us</a></li>
</ul>
</div>
<div id="content">
<p>Some sample text.<p>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
CSS:
#container {
position: static;
background-color: #00bbee;
margin-left: 20%;
margin-right: 20%;
margin-top: 7%;
margin-bottom: 15%;
border: 2px solid red;
}
#navbar ul{
list-style: none;
}
#navbar li{
display: inline;
}
#navbar li a{
text-decoration: none;
color: #11ff11;
margin: 3%;
border: 1px dotted orange;
padding-left: 4px;
}
#navbar li a:hover {
background-color: white; …
Run Code Online (Sandbox Code Playgroud)