`
mickey_hou
  • 浏览: 246482 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Androud图片放大缩小处理

阅读更多
private ImageView big_image;   
    /*
     * 原图片宽   原图片高
     */
    private int primary_width, primary_height;   
    /*
     * 高宽比例
     */
    private double scaleWidth = 1, scaleHeight = 1; 
    private Bitmap bitmap;
    float scale = 0.2f;
    private Button big_button, small_button;
    @Override
    protected void onCreate(Bundle instance)
    {
        super.onCreate(instance);
        setContentView(R.layout.big);
        initResource();
        setListener();
    }
    private void setListener()
    {
        big_button.setOnClickListener(big_button_listener);
        small_button.setOnClickListener(small_button_listener);
    }
    private OnClickListener big_button_listener = new OnClickListener()
    {
        @Override
        public void onClick(View view)
        {
            scale(1.25,1.25);
        }
    };
    private OnClickListener small_button_listener = new OnClickListener()
    {
        @Override
        public void onClick(View view)
        {
            scale(0.8,0.8);
        }
    };
    private void initResource()
    {
        big_button = (Button) findViewById(R.id.big_button);
        small_button = (Button) findViewById(R.id.small_button);
        bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.c1);
       
        primary_width = bitmap.getWidth();
        primary_height = bitmap.getHeight();
       
        big_image = (ImageView) findViewById(R.id.big_image);
        big_image.setImageBitmap(bitmap);
    }
    private void scale(double  scale_width, double scale_height)
    { 
        Display display = getWindowManager().getDefaultDisplay();
       
        big_image = (ImageView) findViewById(R.id.big_image);
        int re_width = big_image.getWidth();
        int re_height = big_image.getHeight();
        if((scale_width > 1 && scaleWidth * re_width >= display.getWidth())  ||
           (scale_height > 1 && scaleHeight * re_height >= display.getHeight()))
        { 
            big_button.setEnabled(false); 
        }
        else
        { 
            big_button.setEnabled(true); 
        } 
        scaleWidth = scaleWidth * scale_width; 
        scaleHeight = scaleHeight * scale_height; 
         
        /*
         * 矩阵,用于图片比例缩放
         */
        Matrix matrix = new Matrix();
        /*
         * 设置高宽比例(三维矩阵)
         */
        matrix.postScale((float)scaleWidth, (float)scaleHeight);    
         
        /*
         * 参数说明:
         * Bitmap source:要从中截图的原始位图
         * int x:起始x坐标
         * int y:起始y坐标
         * int width:要截的图的宽度
         * int height:要截的图的宽度
         * boolean filter:
         * 返回值:返回一个剪切好的Bitmap
         */
        Bitmap newBmp = Bitmap.createBitmap(bitmap, 0, 0, primary_width, primary_height, matrix, true);  

        big_image.setImageBitmap(newBmp); 
    }
分享到:
评论

相关推荐

    Android 图片随手势放大缩小功能

    在Android开发中,实现图片随手势放大...总的来说,Android图片随手势放大缩小功能的实现涉及了Android事件处理、手势识别、图像变换等多个技术点,通过巧妙地组合和优化,可以为用户提供直观且舒适的图片浏览体验。

    Android实现图片手势缩放、移动、双击放大缩小

    Android实现图片手势缩放、移动、双击放大缩小。

    Android-一个Android图片缩放查看控件支持手势

    这个名为"Android-一个Android图片缩放查看控件支持手势"的项目,旨在提供一个自定义的视图控件,它允许用户通过手势进行图片的放大、缩小以及平移操作,提升用户体验。下面我们将深入探讨这个控件的关键知识点和...

    android图片放大缩小(绝对好用)

    总的来说,Android图片的放大缩小涉及到了Bitmap的创建、解码、缩放,以及多点触控手势的处理。理解并掌握这些知识点,可以让你在开发过程中更加游刃有余,提供给用户更好的图片浏览体验。在实际开发中,要兼顾性能...

    Android 图片放大缩小功能,支持多触点缩放

    在Android开发中,实现图片的放大缩小功能以及多触点缩放是一项常见的需求,尤其在设计用户界面或者处理图像应用时。本节我们将详细探讨如何在Android应用中实现实现这个功能,主要围绕以下几个关键知识点: 1. **...

    Android图片放大缩小旋转完美demo

    总结来说,这个“Android图片放大缩小旋转完美demo”涵盖了Android图片处理的核心技术,包括手势识别、Matrix变换、ViewPager的使用以及网络图片加载。通过学习和理解这个demo,开发者可以更好地掌握Android中图片的...

    android 图片放大缩小 多触屏 代码

    在Android开发中,图片的放大和缩小...总的来说,Android图片放大缩小和多触屏的支持涉及到触摸事件处理、Matrix变换以及手势识别等多个知识点。通过理解这些概念并结合实际代码,可以创建出功能完善的图像查看组件。

    Android SurfaceView 实现图片缩放 滑动

    综上所述,通过结合SurfaceView、手势检测和矩阵变换,我们可以实现在Android应用中对图片的流畅缩放和滑动操作。然而,由于SurfaceView的特性,这个过程可能会比使用ImageView等其他组件更为复杂。因此,开发者需要...

    Android 图片浏览全屏缩放

    这两个类可以帮助我们识别用户的捏合和滑动操作,从而实现图片的放大和缩小以及平移。 ```java public class CustomImageView extends ImageView { private ScaleGestureDetector scaleGestureDetector; public ...

    Android 缩放图片 缩小和放大图片.rar

    Android图片放大缩小操作范例,单击对应的按钮,可将一张图片进行放大或缩小显示,实现的步骤大概是:  取得屏幕分辨率大小 ,对获取到的屏幕高度扣除下方Button高度,定义缩小按钮onClickListener 和...

    android 图片放大缩小移动 demo

    通过学习和实践这个“android 图片放大缩小移动 demo”项目,开发者不仅可以掌握图片处理的基本技巧,还能进一步理解Android手势检测、自定义View和动画系统的工作原理,对提升Android应用的交互性和用户体验有着...

    android图片放大缩小 ImageView

    9. **动画效果**: 除了静态的放大缩小,还可以通过Animation类或ObjectAnimator实现平滑的缩放动画效果,增强用户体验。 10. **性能考量**: 当处理大量图片或高分辨率图片时,要注意内存管理,合理使用Bitmap的配置...

    android 图片放大缩小滑动

    2. **手势识别**: 实现图片的放大缩小,我们需要使用Android的手势库(`android.gesture`),特别是` GestureDetector`和` ScaleGestureDetector`。`GestureDetector`用于识别单击、双击等基本手势,而`...

    android应用源码图片放大缩小旋转涂鸦源码.zip

    这份"android应用源码图片放大缩小旋转涂鸦源码.zip"提供了完整的源代码,可以作为学习和设计此类应用的参考。以下是基于这个源码包可能涉及到的关键知识点: 1. **图片加载库**:在Android中,高效地加载和显示...

    Android实现图片放大缩小Demo

    在Android开发中,实现图片的放大缩小功能是常见的需求,特别是在设计相册或者查看图片的应用中。本Demo主要展示了如何在Android环境中实现这样的功能,既支持网络图片的加载,也支持本地图片的显示,并允许用户进行...

    android手势放大缩小图片

    在Android开发中,实现手势放大缩小图片是一项常见的需求,它能提供用户更加直观和自由的交互体验。本文将深入探讨如何在Android应用中实现在ImageView上添加手势缩放功能,并支持图片的拖动操作。 首先,我们需要...

    Android图片浏览,放大平移

    以上就是实现Android图片浏览、放大缩小和平移的核心技术点。在实际开发中,还需要注意性能优化,比如使用异步加载图片、处理内存泄漏等,以提供流畅的用户体验。在项目`MyApplication`中,你可以找到具体的代码实现...

    Android图片随手势放大缩小

    在Android开发中,实现图片随手势放大缩小的功能是一项常见的需求,尤其在查看照片、阅读电子书或使用图像编辑应用时。这项技术的核心是利用Android提供的触摸事件处理机制和矩阵操作来改变图片的缩放比例。以下将...

    Android图片放大缩小

    因此,通常会使用图片加载库,如Glide、Picasso或 Fresco,它们能进行图片的内存和磁盘缓存管理,并支持按需加载和缩放图片,减少内存占用。 7. **性能优化**: 当图片过大时,需要考虑使用`BitmapFactory.Options...

    android 图片多点放大缩小移动

    本文将深入探讨如何实现“Android图片多点放大缩小移动”这一功能,结合给定的描述和标签,我们将关注以下几个核心知识点: 1. **多点触控(Multi-Touch)**: 多点触控是指设备能够同时识别并处理两个或更多触摸...

Global site tag (gtag.js) - Google Analytics