我试图让用户触摸图像,然后基本上一个圆形放大镜将显示将允许用户更好地选择图像上的某个区域.当用户释放触摸时,放大的部分将消失.这用于几个照片编辑应用程序,我正在尝试实现我自己的版本.我下面的代码确实放大了图像视图的圆形部分,但是一旦我松开手指就不会删除或清除缩放.我目前设置一个位图到画布使用canvas = new Canvas(bitMap);
然后设置imageview takenPhoto.setImageBitmap(bitMap);
我不知道我是否正确的方式.onTouch代码如下:
zoomPos = new PointF(0,0);
takenPhoto.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
int action = event.getAction();
switch (action) {
case MotionEvent.ACTION_DOWN:
zoomPos.x = event.getX();
zoomPos.y = event.getY();
matrix.reset();
matrix.postScale(2f, 2f, zoomPos.x, zoomPos.y);
shader.setLocalMatrix(matrix);
canvas.drawCircle(zoomPos.x, zoomPos.y, 20, shaderPaint);
takenPhoto.invalidate();
break;
case MotionEvent.ACTION_MOVE:
zoomPos.x = event.getX();
zoomPos.y = event.getY();
matrix.reset();
matrix.postScale(2f, 2f, zoomPos.x, zoomPos.y);
canvas.drawCircle(zoomPos.x, zoomPos.y, 20, shaderPaint);
takenPhoto.invalidate();
break;
case MotionEvent.ACTION_UP:
//clear zoom here?
break;
case MotionEvent.ACTION_CANCEL:
break;
default:
break; …
Run Code Online (Sandbox Code Playgroud) android image-zoom touch-event android-imageview android-canvas
我是SpriteKit的新手.我需要通过UIImageView或SpriteNode显示图像(它是游戏的背景图像).但是,我需要用户能够放大背景并平移.我在不使用SpriteKit的情况下轻松完成了这项工作,但无法弄清楚如何让节点接受缩放和平移.如果我在故事板中使用UIScrollView,我场景中添加的所有精灵都不会成为子项,也不会缩放或平移.
是否有可能,你能指出我正确的方向吗?
编辑:
我对你的答案感到有点困惑,但这就是我的所作所为:
在我的根视图控制器.m中:
- (void)viewDidLoad
{
[super viewDidLoad];
SKView * showDesigner = (SKView *)self.view;
SKScene * scene = [iMarchMyScene sceneWithSize:showDesigner.bounds.size];
scene.scaleMode = SKSceneScaleModeAspectFill;
[showDesigner presentScene:scene];
}
Run Code Online (Sandbox Code Playgroud)
在我的场景.m :(你的步骤被评论)
-(id)initWithSize:(CGSize)size {
if (self = [super initWithSize:size]) {
//create SKView (step 1)
SKView *skview_field = [[SKView alloc]initWithFrame:(CGRectMake(0, 0, size.width, size.height))];
//create UIScrollView with same dimensions as your SpriteKit view (step 2)
UIScrollView* uiscrollview_field = [[UIScrollView alloc]initWithFrame:skview_field.frame];
//initialize the field (field is the game's background node)
SKSpriteNode *field = [SKSpriteNode …
Run Code Online (Sandbox Code Playgroud) 我正在使用chrisbanes PhotoView来实现捏缩放..图像缩放捏和双击但我无法看到我的图像在变焦时拉伸到全屏...缩放它看起来图像放大到框内部分图像消失在缩放...我如何实现图像缩放,以便在缩放时图像的高度增加?我正在使用NetworkImageView(Volley库).
NetworkImageView imageView;
PhotoViewAttacher mAttacher;
imageView = (NetworkImageView) mImgPagerView.findViewById(R.id.imageitem);
mAttacher = new PhotoViewAttacher(imageView);
Run Code Online (Sandbox Code Playgroud)
NetworkImageView.java(Volley库)
import android.content.Context;
import android.graphics.Bitmap;
import android.text.TextUtils;
import android.util.AttributeSet;
import android.widget.ImageView;
import com.android.volley.toolbox.ImageLoader.ImageContainer;
public class NetwrokImageView extends ImageView {
/** The URL of the network image to load */
private String mUrl;
/**
* Resource ID of the image to be used as a placeholder until the network image is loaded.
*/
private int mDefaultImageId;
/**
* Resource ID of the image to be used if …
Run Code Online (Sandbox Code Playgroud) 对于我正在处理的事情,这是一个简单的HTML占位符.你可以忽略其余的(我希望!)并专注于这个唯一的问题:
图像上的缩放工作,它会按照我想要的方式聚焦在您按下的象限上.但如果在左上象限进行缩放,它只会放置顶部和底部滚动条.
我希望它始终显示滚动条.我错过了什么?
谢谢
var images = ["Species_copy_number.png", "Species_coverage.png", "Species_distribution.png", "Gene_copy_distribution.png"];
var descriptions = ["cariño", "muis bueno", "caliente", "CABRÓN!"];
var titles = ["ay", "ay ay", "ay ay ay", "AY AY AY MI HIJJJJJJOOOOOOOOOOOOO"];
function changeImage(index){
var img = document.getElementById("img_place");
img.src = "Figures/" + images[index];
document.getElementById("desc_place").textContent = descriptions[index];
document.getElementById("subtitle").textContent = titles[index];
}
window.zoomedIn = false;
window.onload = function(){
var canvas = document.getElementById("img_wrapper");
canvas.onclick = function(event){
var imgWrapper = this, zoomContainer = document.getElementById("zoom-container");
var imgPlace = document.getElementById("img_place");
if (window.zoomedIn) {
imgPlace.setAttribute("style", "transform …
Run Code Online (Sandbox Code Playgroud)我一直在研究PanResponder.我目前的工作假设是我会检测是否有两个向外移动的触摸,如果有,则增加onPanResponderMove
函数中的元素大小.
这似乎是一种混乱的方式.有更顺畅的方式吗?
我有一个由ImageViews制作的ViewPager实现如下:
@Override
public Object instantiateItem(View collection, int position) {
ImageView iv = new ImageView(ctx);
if (pageList.size() > position)
iv.setImageBitmap(pageList.get(position));
else
iv.setImageResource(R.drawable.loading);
iv.setOnTouchListener(this);
((ViewPager) collection).addView(iv, 0);
System.out.println("POS: " + position);
return iv;
}
Run Code Online (Sandbox Code Playgroud)
有机会我可以通过双击(并滑动图像)或缩放缩放来缩放ImageView吗?
我想在ImagePagerActivity中使用ImageViewZoom和Universal Image Loader.
我可以缩放图像,滑动到下一个图像.但是当图像处于变焦位置时,我正面临问题.
如果图像被缩放并且我处于中心位置,如果我想要看到同一图像的右侧部分并向左滑动它将转到下一个图像.请帮我这样做.
这是我的XML代码:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="1dip" >
<it.sephiroth.android.library.imagezoom.ImageViewTouch
android:layout_weight="1"
android:id="@+id/image"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:scaleType="fitCenter" />
<ProgressBar
android:id="@+id/loading"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:visibility="gone" />
</FrameLayout>
Run Code Online (Sandbox Code Playgroud)
编辑:
谢谢NOSTRA,现在我可以用下面的代码控制缩放和滑动.但多点触控变焦的问题.我无法用两根手指进行缩放.
这是我以前的代码(用两根手指正常工作):
public class ScaleListener extends ScaleGestureDetector.SimpleOnScaleGestureListener {
@Override
public boolean onScale( ScaleGestureDetector detector ) {
Log.d( LOG_TAG, "onScale" );
float span = detector.getCurrentSpan() - detector.getPreviousSpan();
float targetScale = mCurrentScaleFactor * detector.getScaleFactor();
if ( mScaleEnabled ) {
targetScale = Math.min( getMaxZoom(), Math.max( targetScale, getMinZoom()-0.1f ) );
zoomTo( targetScale, detector.getFocusX(), detector.getFocusY() );
mCurrentScaleFactor …
Run Code Online (Sandbox Code Playgroud) 我将图像控件放在滚动查看器中,就像tnis一样:
<ScrollViewer VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto" >
<Image Source="/Test/1.jpg" Width="320">
<Image.RenderTransform>
<CompositeTransform ScaleX="{Binding Path=Value, ElementName=slider}"/>
</Image.RenderTransform>
</Image>
</ScrollViewer>
Run Code Online (Sandbox Code Playgroud)
正如代码所示,我添加了一个滑块来控制图像的Compositetransform,但是当我改变滑块的值时,什么也没发生?
我还尝试在图像上附加缩放和平移行为(取决于工具包),不幸的是,我可以上下滚动,但我无法放大/缩小图像.似乎Scrollviewer阻止了捏合操纵.
我们知道,Scrollviewer控件在WPF中有一个"ZoomMode"属性,但在Windows Phone中已弃用.那么我怎样才能实现iamge缩放滚动查看器,有人能给我一个帮助吗?
我试图用jQuery(辉煌)插件gzoom(http://lab.gianiaz.com/jquery/gzoom/或http://www.chouselive.co.za/demo/pictures/)在我的图像上添加缩放zoom/gzoom.php).
但它不起作用.我的图片刚刚调整大小,但没有缩放.
这是我的代码:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>test gzoom</title>
<link rel="stylesheet" href="css/jquery-ui-1.7.1.custom.css" type="text/css" media="screen">
<link rel="stylesheet" href="css/jquery.gzoom.css" type="text/css" media="screen">
<style>
div#zoom{
cursor: crosshair;
}
</style>
</head>
<body>
<div id="gzoomwrap">
<div id="zoom" class="zoom minizoompan">
<span class="loader">loading...</span>
<img src='img/myImage.png'/>
</div>
<!-- START gzoom zoom bar -->
<div class="ui-icon ui-icon-circle-minus gzoombutton"> </div>
<div class="gzoomSlider ui-slider ui-slider-horizontal ui-widget ui-widget-content ui-corner-all" style="width: 258px;"><a href="#" class="ui-slider-handle ui-state-default ui-corner-all"></a></div>
<div class="ui-icon ui-icon-circle-plus gzoombutton"> </div>
<br style="clear:both">
<!-- …
Run Code Online (Sandbox Code Playgroud) image-zoom ×10
android ×5
pinchzoom ×3
html ×1
image ×1
imageview ×1
ios ×1
ios7 ×1
javascript ×1
pan ×1
react-native ×1
reactjs ×1
scrollview ×1
sprite-kit ×1
touch-event ×1
zoom ×1