精华内容
下载资源
问答
  • 移动端点击图片会变成全屏查看的模式,然后可以进行手势缩放。微信端点击放大图片
  • 需求:在内容列表中点击图片列表显示大图并且可以双击放大缩小下文主要介绍思路,一定是最好的,时间来不及先实现效果就OK列表 可选的有 ListView 和 RecyclerView,这里主要就是列表数据的填充和展示使用 ...

    首发地址:dongxi520.com

    需求:在内容列表中点击图片列表显示大图并且可以双击放大缩小下文主要介绍思路,不一定是最好的,时间来不及能先实现效果就OK

    列表

    可选的有 ListView 和 RecyclerView,这里主要就是列表数据的填充和展示

    • 使用 ListView 在 getView() 中获取数据并设置数据,然后通过 ListView 的 setOnClickListener 去完成点击事件
    • 使用 RecyclerView 在 ViewHolder 中获取控件,在 onBindView 中去设置数据,在 recyclerView 的 adapter 中添加点击事件的接口完成点击事件

    图片列表

    可选的有 GitHub 开源库,自己撸

    • 自己撸,思路:一张图片+九张图片(三张一排)的布局;通过判断返回的图片list去填充,如果返回1,则显示一张图片,九张图片的就隐藏;返回0则全部不显示。返回大于1,则通过双层for循环去给九张图中的每一个imageview去设置图片(里面是一个算法)。
    • 开源库 Github 搜索九宫格就有,按照start 最多排序去选择

    大图

    可选的有 GitHub 开源库,自己撸

    • 开源库:Github 搜索点击查看大图
    • 自己撸:启动新的activity去展示,用Dialog去全屏显示。用activity展示,可以将图片的list以及点击的position传递给activity,list主要是想在activity用Viewpager去滑动展示图片,position是为了viewpager展示的时候是当前点击的图片位置。

    双击放大缩小

    可选的有 GitHub 开源库,自己撸

    • 自己撸:….脑子不够用了,还是用开源库吧
    • PhotoView:项目有点久,因为现在项目中有这个库,所以先用这个库来实现,具体用法去Github搜索。
    • //将图片装载到数组中
      mImageViews = new PhotoView[mImagesList.size()];

         // 将传递过来的list列表给PhotoView去展示
         for(int i=0; i< mImagesList.size(); i++){
             PhotoView view = new PhotoView(XXXActivity.this);
             view.isEnabled() ;   // 支持缩放
             view.setScaleType(ImageView.ScaleType.FIT_CENTER);   // 图片裁剪的类别
             mImageViews[i] = view;
             Glide.with(this).load(mImagesList.get(i)).into(view);
         }
      
    展开全文
  • 最近做了个Demo,在ScatterView 中放图片,在后台设置图片大小后,图片不能正常缩放,

    最近做了个Demo,在ScatterView 中放图片,在后台设置图片大小后,图片不能正常缩放,去掉大小设置,改在前台样式中设置就可以正常缩放了.



    展开全文
  • 实现了,单张图片的双击放大 ,双击返回原来的图片。...viewPager列表显示图片,左右滑动,能放大缩小,滑动到边界回弹效果,图片固定在手机屏幕中间,图片放大缩小没有错位等bug,类似微信的图片缩放效果。
  • UIImageView *imageviewpic; imageviewpic.frame=CGRectMake(0, 0, lable.frame.size.width, lable.frame.size.height); imageviewpic=[[UIImageView alloc]initWithImage:...图片加在lable怎么不能自动缩放
  • android 图片浏览功能 图片放大缩小 使用 photoview 双击或双指缩放的ImageView 使用多点触控和双击。 滚动,以平滑滚动甩。 github 下载地址: https://github.com/chrisbanes/PhotoView 实际效果参考 图片来自...

    android 图片浏览功能  图片放大缩小   

    使用 photoview 双击或双指缩放的ImageView 

    使用多点触控和双击。

    滚动,以平滑滚动甩。


    github  下载地址:  https://github.com/chrisbanes/PhotoView


    实际效果参考 


    图片来自 : http://a.code4app.com/android/PhotoView/5241a4026803fa1327000000


    下载完成后 导入IDE里面




    将lib  添加进来




    贴出 photoview的代码:

    /*******************************************************************************
     * Copyright 2011, 2012 Chris Banes.
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     * http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     *******************************************************************************/
    package uk.co.senab.photoview;
    
    import android.content.Context;
    import android.graphics.Bitmap;
    import android.graphics.Matrix;
    import android.graphics.RectF;
    import android.graphics.drawable.Drawable;
    import android.net.Uri;
    import android.util.AttributeSet;
    import android.view.GestureDetector;
    import android.widget.ImageView;
    
    import uk.co.senab.photoview.PhotoViewAttacher.OnMatrixChangedListener;
    import uk.co.senab.photoview.PhotoViewAttacher.OnPhotoTapListener;
    import uk.co.senab.photoview.PhotoViewAttacher.OnViewTapListener;
    
    public class PhotoView extends ImageView implements IPhotoView {
    
        private final PhotoViewAttacher mAttacher;
    
        private ScaleType mPendingScaleType;
    
        public PhotoView(Context context) {
            this(context, null);
        }
    
        public PhotoView(Context context, AttributeSet attr) {
            this(context, attr, 0);
        }
    
        public PhotoView(Context context, AttributeSet attr, int defStyle) {
            super(context, attr, defStyle);
            super.setScaleType(ScaleType.MATRIX);
            mAttacher = new PhotoViewAttacher(this);
    
            if (null != mPendingScaleType) {
                setScaleType(mPendingScaleType);
                mPendingScaleType = null;
            }
        }
    
        /**
         * @deprecated use {@link #setRotationTo(float)}
         */
        @Override
        public void setPhotoViewRotation(float rotationDegree) {
            mAttacher.setRotationTo(rotationDegree);
        }
        
        @Override
        public void setRotationTo(float rotationDegree) {
            mAttacher.setRotationTo(rotationDegree);
        }
    
        @Override
        public void setRotationBy(float rotationDegree) {
            mAttacher.setRotationBy(rotationDegree);
        }
    
        @Override
        public boolean canZoom() {
            return mAttacher.canZoom();
        }
    
        @Override
        public RectF getDisplayRect() {
            return mAttacher.getDisplayRect();
        }
    
        @Override
        public Matrix getDisplayMatrix() {
            return mAttacher.getDrawMatrix();
        }
    
        @Override
        public boolean setDisplayMatrix(Matrix finalRectangle) {
            return mAttacher.setDisplayMatrix(finalRectangle);
        }
    
        @Override
        @Deprecated
        public float getMinScale() {
            return getMinimumScale();
        }
    
        @Override
        public float getMinimumScale() {
            return mAttacher.getMinimumScale();
        }
    
        @Override
        @Deprecated
        public float getMidScale() {
            return getMediumScale();
        }
    
        @Override
        public float getMediumScale() {
            return mAttacher.getMediumScale();
        }
    
        @Override
        @Deprecated
        public float getMaxScale() {
            return getMaximumScale();
        }
    
        @Override
        public float getMaximumScale() {
            return mAttacher.getMaximumScale();
        }
    
        @Override
        public float getScale() {
            return mAttacher.getScale();
        }
    
        @Override
        public ScaleType getScaleType() {
            return mAttacher.getScaleType();
        }
    
        @Override
        public void setAllowParentInterceptOnEdge(boolean allow) {
            mAttacher.setAllowParentInterceptOnEdge(allow);
        }
    
        @Override
        @Deprecated
        public void setMinScale(float minScale) {
            setMinimumScale(minScale);
        }
    
        @Override
        public void setMinimumScale(float minimumScale) {
            mAttacher.setMinimumScale(minimumScale);
        }
    
        @Override
        @Deprecated
        public void setMidScale(float midScale) {
            setMediumScale(midScale);
        }
    
        @Override
        public void setMediumScale(float mediumScale) {
            mAttacher.setMediumScale(mediumScale);
        }
    
        @Override
        @Deprecated
        public void setMaxScale(float maxScale) {
            setMaximumScale(maxScale);
        }
    
        @Override
        public void setMaximumScale(float maximumScale) {
            mAttacher.setMaximumScale(maximumScale);
        }
    
        @Override
        // setImageBitmap calls through to this method
        public void setImageDrawable(Drawable drawable) {
            super.setImageDrawable(drawable);
            if (null != mAttacher) {
                mAttacher.update();
            }
        }
    
        @Override
        public void setImageResource(int resId) {
            super.setImageResource(resId);
            if (null != mAttacher) {
                mAttacher.update();
            }
        }
    
        @Override
        public void setImageURI(Uri uri) {
            super.setImageURI(uri);
            if (null != mAttacher) {
                mAttacher.update();
            }
        }
    
        @Override
        public void setOnMatrixChangeListener(OnMatrixChangedListener listener) {
            mAttacher.setOnMatrixChangeListener(listener);
        }
    
        @Override
        public void setOnLongClickListener(OnLongClickListener l) {
            mAttacher.setOnLongClickListener(l);
        }
    
        @Override
        public void setOnPhotoTapListener(OnPhotoTapListener listener) {
            mAttacher.setOnPhotoTapListener(listener);
        }
    
        @Override
        public OnPhotoTapListener getOnPhotoTapListener() {
            return mAttacher.getOnPhotoTapListener();
        }
    
        @Override
        public void setOnViewTapListener(OnViewTapListener listener) {
            mAttacher.setOnViewTapListener(listener);
        }
    
        @Override
        public OnViewTapListener getOnViewTapListener() {
            return mAttacher.getOnViewTapListener();
        }
    
        @Override
        public void setScale(float scale) {
            mAttacher.setScale(scale);
        }
    
        @Override
        public void setScale(float scale, boolean animate) {
            mAttacher.setScale(scale, animate);
        }
    
        @Override
        public void setScale(float scale, float focalX, float focalY, boolean animate) {
            mAttacher.setScale(scale, focalX, focalY, animate);
        }
    
        @Override
        public void setScaleType(ScaleType scaleType) {
            if (null != mAttacher) {
                mAttacher.setScaleType(scaleType);
            } else {
                mPendingScaleType = scaleType;
            }
        }
    
        @Override
        public void setZoomable(boolean zoomable) {
            mAttacher.setZoomable(zoomable);
        }
    
        @Override
        public Bitmap getVisibleRectangleBitmap() {
            return mAttacher.getVisibleRectangleBitmap();
        }
    
        @Override
        public void setZoomTransitionDuration(int milliseconds) {
            mAttacher.setZoomTransitionDuration(milliseconds);
        }
    
        @Override
        public IPhotoView getIPhotoViewImplementation() {
            return mAttacher;
        }
    
        @Override
        public void setOnDoubleTapListener(GestureDetector.OnDoubleTapListener newOnDoubleTapListener) {
            mAttacher.setOnDoubleTapListener(newOnDoubleTapListener);
        }
    
        @Override
        protected void onDetachedFromWindow() {
            mAttacher.cleanup();
            super.onDetachedFromWindow();
        }
    
    }



    接下来将lib 导入自己的项目中使用  


    在自己的项目中使用  只需要在 xml 文件里面将  原有的imageview  替换为  uk.co.senab.photoview.PhotoView  

    就能使用

    如图:



    非常方便快捷

    github  下载地址:  https://github.com/chrisbanes/PhotoView


    谢谢大家

    展开全文
  • 了解 在安卓的界面XML中,ImageButton有这样一个属性android:scaleType,...1、center:图片位于视图中间,但执行缩放。2、centerCrop按统一比例缩放图片(保持图片的尺寸比例)便于图片的两维(宽度和高度)等于...

    了解

    在安卓的界面XML中,ImageButton有这样一个属性android:scaleType,他干嘛的?

    ImageView的Scaletype决定了图片在View上显示时的样子,如进行何种比例的缩放,及显示图片的整体还是部分。有八种类型即

    1、center:图片位于视图中间,但不执行缩放。
    2、centerCrop按统一比例缩放图片(保持图片的尺寸比例)便于图片的两维(宽度和高度)等于或者大于相应的视图的维度
    3、centerInside按统一比例缩放图片(保持图片的尺寸比例)便于图片的两维(宽度和高度)等于或者小于相应的视图的维度
    4、fitCenter缩放图片使用center,在中间
    5、fitEnd缩放图片使用END,靠近尾部
    6、fitStart缩放图片使用START,靠近头部
    7、fitXY缩放图片使用XY
    8、matrix当绘制时使用图片矩阵缩放

    相应的java代码为 imageButton.setScaleType(ImageView.ScaleType.FIT_CENTER);

    在这里我们选择fitCenter缩放图片使用center

     

    实施

    我们想要实现的效果是一个按钮点击下去可以显示点击的效果,即另外一张图片。结合onTouchListener就可以实现,不过有个地方要注意一下。

       1:  public class Example extends Activity {
       2:  ImageButton exm;
       3:   
       4:  public void onCreate(Bundle savedInstanceState) {
       5:          super.onCreate(savedInstanceState);
       6:          setContentView(R.exampleLayout);
       7:          exm = (ImageButton)findViewById(R.id.exmBtn);
       8:          initBtnListener(exm);
       9:  }
      10:   
      11:  private void initBtnListener(ImageButton btn){
      12:         btn.setOnTouchListener(new  View.OnTouchListener(){
      13:          @Override
      14:          public boolean onTouch(View v, MotionEvent event) {
      15:              if(event.getAction() == MotionEvent.ACTION_DOWN){
      16:                  //更改为按下时的背景图片
      17:                  exm.setImageResource(R.drawable.anwbtn1);
      18:              }else if(event.getAction() == MotionEvent.ACTION_UP){
      19:                  //改为抬起时的图片
      20:                 exm.setImageResource(R.drawable.anwbtn0);
      21:              }
      22:              return false;
      23:              }
      24:          });
      25:      }
      26:   
      27:  };

    在exampleLayout的XML中有一个id为exmBtn的ImageButton,并且设置属性android:scaleType=“fitCenter”

    上面中更改按钮图片的方法还有另外一种就是v.setBackgroundResource(int);但是这种方法达不到让ImageButton自己管理图片缩放的效果,所以应该直接让ImageButton自己setImageResource。

    注意上面的代码中使用到了内部类,其实上面的用法参数btn确实是指向exm,但是不能用btn代替exm去更换按钮图片,原因是btn必须声明为final才能在匿名内部类View.OnTouchListener()中使用。所以可以把btn参数直接替换成exm并把形式参数去掉。

    360软件小助手截图20140321034532360软件小助手截图20140321034550

    转载于:https://www.cnblogs.com/claruarius/p/fitCenter.html

    展开全文
  • imagepicker调用的相册只能单纯的选择图片然后确定~不能说就是能在相册里面放大图片放大后左右滑动。 ionic能不能实现在调用相册的时候在相册界面进行点击图片放大和左右滑动的功能。
  • 这是效果demo:Demo.rar   需要用到的文件 (项目中用这里...因为这个功能需要图片有id和class,所以我们首先给KindEdit上传的图片加上onclick、id和class,因为没时间去改KindEdit内部的实现代码,所以我使用了
  • svg图片缩放

    2013-01-07 10:34:18
    svg图片缩放源码,虽然多,但是用~
  • android webview的缩放问题: 从一个网页点击图片链接,查看大图,图片设置可以缩放,但是从图片返回到上一页面(goback())后, 原先的网页也能缩放,如何才能返回后的网页不能缩放呢?
  • 目的是:通过background的一系列属性,DIV按照背景图片的比例缩放,并背景图片填充整个DIV  首先我们需要背景图片在指定的DIV中全部填充显示  之前看有用类似 background-attachment: 的fix来实现背景图片的...
  • 让图片变大,而且控件本身大小不能改变,那么就要改变图片自身大小,而不能改变控件大小. 实现原理: 1,首先拿到我们要放大图片bitmap. 2,使用Bitmap.createBitmap().创建一个bitmap的副本. 3,使用matrix去改变图片...
  • 点击图片放大进行预览,小程序官方给我们提供了一个非常简单的API wx.previewImage({})参数共有5个,主要使用的2个,参数如下: urls Array.<string> 是 需要预览的图片链接列表。2.2.3起支持...
  • 微信小程序 图片等比例缩放 ...所以不能简单用高宽来判断,应该是用高宽比判断后做缩放. 上代码: 1.index.wxml <!--index.wxml--> <!--图片宽大于屏幕宽--> <image style=width: {{imag
  • // 放大时,如果内容宽度大于屏幕,左右边界不能出现黑边 if (rect.left + dragX > 0 ) { dragX = 0 - rect.left; } else if (rect.right + dragX ) { dragX = mWidth - rect.right; } } else { ...
  • 网页前台开发中的很多时候,我们需要让图片...有时我们希望图片能随屏幕大小的缩放缩放,两种情况:单个图片缩放图片在盒子内缩放图片缩放img {width: auto;height: auto;max-width: 100%;max-height: 100%;} ...
  • QImage实现图片不失真缩放 不失真缩放方法 利用QImage读取图片,scale函数实现缩放。 scaled(width, height, Qt::IgnoreAspectRatio, Qt::SmoothTransformation); 第一、二参数代表缩放后的尺寸,第三个...
  • 背景图片缩放

    千次阅读 2016-06-19 22:32:36
    效果如下: 分析:想让图片变大,而且控件本身大小不能改变,那么就要改变图片自身大小,而不能改变控件大小. 实现原理:1,首先拿到我们要放大图片bitmap.2,使用Bitmap.createBitmap().创建一个bitmap的副本.3,使用...
  • 这是我的第一篇博客,写的不好请大家见谅,能帮到你是最好的,不能帮到你请你也了解一下  我们的安卓程序有时候是基于webview用js和h5来编写的,那么图片支持双击放大、缩小是可以做到的;但是手势缩放往往会...
  • 在客户端的游戏制作过程中,经理会要处理一些图片,比如翻转,位移,缩放。 在我最开始做Android游戏开发的时间,最我头大的就是Android的本身自带 的图片自动缩放功能。而这往往不是我们所想要的。 遇到的...
  • 如题,用createScaledBitmap想要调整到适应屏幕,可是在320*480上的适应屏幕没问题,在480*800的就一直调不好 原因是忽略了屏幕密度的...获取屏幕的width height 然后乘以密度就是图片要适应屏幕大小的px
  • 因项目需求(ui框架element-ui),需要实现图片的点击放大,还要旋转以及上下切换。当时第一反应,element-ui好像没有这样的组件,就想过自己写,但是那个旋转翻页上下切换感觉有点麻烦,甘心,就在GitHub找找找...
  • Android 让图片等比例缩放的三种方法

    千次阅读 2015-09-14 17:17:00
     前提条件:服务器端需要返回原始图片的“宽和高”或者“宽高缩放比例”,客户端要显示的图片的宽或者高只要其一是固定的(例如:高度为200,宽度未知,或者高度为400宽度未知)  在这种条件下客户端可以根据...
  • 在picturebox里画了一些点,希望可以实现图片放大与缩小,函数都已完成,只是在实现的时候发现只是picturebox的长宽改变,里面的点却没有达到放大缩小的效果,该如何解决
  • java图片缩放

    2015-09-08 18:16:45
    在使用 java图片缩放一 提供的方法进行图片缩小/放大是出现了 图像两边留白 变形等问题。... 后来想 能不能先将图片等比例压缩、放大到和目标尺寸相近的尺寸。 能后在进行裁剪。 通过搜索 网上已有这样的方案
  • [原创]图片缩放控件 缩放尺寸的同时缩放文件大小的字节数,解决了,Image控件不能直截赋二进制流的问题.由于图片按比例缩放图片二进制输出提高了图片的访问速度,就算是10M的图片,显示给用户,只用传输不到100K的内容,...
  • 不过在实现的过程中也学习到很多以前知道的东西,下面都会说明,希望大家从中也学到东西。 原理: 【拖放程序】 基本原理很简单,知道的看代码就明白,其中参考了越兔和BlueDestiny的相关文章。 下面说一下...
  • 点击图片放大,实现移动端双指缩放,单指拖拽功能 记录一下最近项目中用到的点击图片出现一个遮罩层,同时放大图片显示,移动端可双指缩放图片并单指拖拽图片.再次点击遮罩层透明区域,遮罩层消失 一.实现效果: 页面原图...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 169,104
精华内容 67,641
关键字:

如何让图片不能放大