如何在android中实现图像视图的缩放效果?

And*_*rld 55 android image zooming

我必须实现图像缩放,我已经尝试了这么多代码.但我没有完全了解手势事件.我想实现当我们应用双击时,图像将根据触摸位置(事件x和y)进行缩放.我必须实现此时只有缩放没有泛.可以任何身体建议我吗?

编辑:实际上我已经用图像实现了viewflipper,如果我尝试应用平移和缩放效果,有时图像将被更改.我想为单击用户的位置实现缩放效果.

给我一些想法....

sta*_*bit 61

懒人可以使用这个lib,只需在你的项目中导入即可

ImageView mImageView;
PhotoViewAttacher mAttacher;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    // Any implementation of ImageView can be used!
    mImageView = (ImageView) findViewById(R.id.iv_photo);

    // Set the Drawable displayed
    Drawable bitmap = getResources().getDrawable(R.drawable.wallpaper);
    mImageView.setImageDrawable(bitmap);

    // Attach a PhotoViewAttacher, which takes care of all of the zooming functionality.
    mAttacher = new PhotoViewAttacher(mImageView);
}


// If you later call mImageView.setImageDrawable/setImageBitmap/setImageResource/etc then you just need to call
mAttacher.update();
Run Code Online (Sandbox Code Playgroud)

  • @pks你可以从这里下载库http://grepcode.com/snapshot/repo1.maven.org/maven2/com.github.chrisbanes.photoview/library/1.2.1直接链接:http://repo1.maven. org/maven2/com/github/chrisbanes/photoview/library/1.2.1/library-1.2.1.jar只需将jar文件放入lib文件夹即可享受:) (4认同)

Vic*_*tor 56

这是最有效的方法之一,它运作顺畅:

https://github.com/MikeOrtiz/TouchImageView

TouchImageView.java在您的项目.然后可以使用它 ImageView.

例:

TouchImageView img = (TouchImageView) findViewById(R.id.img);
Run Code Online (Sandbox Code Playgroud)

如果您TouchImageView在xml 中使用,则必须提供完整的包名称,因为它是自定义视图.

例:

    <com.example.touch.TouchImageView
            android:id="@+id/img”
            android:layout_width="match_parent"
            android:layout_height="match_parent" />
Run Code Online (Sandbox Code Playgroud)


cod*_*e22 10

这是一个关于如何使用imageview实现缩放影响的一个很好的例子

缩放对imageview的影响

编辑:

这里还有一个很棒的.

捏缩放教程


Joh*_*ith 10

我希望你做得很好.当他们想在你的应用程序中添加新功能时经常会发生这种情况,然后他们通常会搜索不是很好的策略的库,因为你不知道该libabry中的代码是什么类型.所以我总是喜欢分叉库并在我的应用程序代码中添加有用的类和方法.

所以当我遇到同样的问题时,我会做很多研发,然后我找到一个能够进行zoomIn,zoomOut和pinIn和out的类.所以你可以在这里看到那个班级..

正如我之前所说,这是一个单一的课程.因此,您可以将此类放在项目中的任何位置,例如utils文件夹.并将以下行放入XML文件中,如:

<your_packege_name.TouchImageView
        android:id="@+id/frag_imageview"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:scaleType="fitCenter"
        android:src="@drawable/default_flag"
        android:transitionName="@string/transition_name_phone" /> 
Run Code Online (Sandbox Code Playgroud)

并且您可以在您尊重的活动中找到该图像视图,就像您对所有视图所做的那样:

TouchImageView tv=(TouchImageView)findViewById(R.id.frag_imageview); 
tv.setImageResource(R.drawable.ic_play);
Run Code Online (Sandbox Code Playgroud)

就是这样TouchImageView.享受我们的代码:)


小智 10

很简单的方法(测试): -

PhotoViewAttacher pAttacher;
pAttacher = new PhotoViewAttacher(Your_Image_View);
pAttacher.update();
Run Code Online (Sandbox Code Playgroud)

在build.gradle中添加bellow行: -

compile 'com.commit451:PhotoView:1.2.4'
Run Code Online (Sandbox Code Playgroud)


Suj*_*jit 5

这实际上是Android中Image Zoom和Pan有史以来最好的例子,

http://blog.sephiroth.it/2011/04/04/imageview-zoom-and-scroll/