`

【android】可放大缩小图片位置点击位置获取

 
阅读更多
直接上代码。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >
 
    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        android:text="Button" />

    <HorizontalScrollView
        android:id="@+id/horizontalScrollView1"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_above="@+id/button1"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true" >


            <ScrollView
                android:id="@+id/scrollView1"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                 >

                <ImageView 
                android:id="@+id/imageView1"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent" 
                android:src="@drawable/campus_map"  />
            </ScrollView>

    </HorizontalScrollView>
 
</RelativeLayout>

在imageview外层加上ScrollView和HorizontalScrollView主要是为了图片在放大的时候使用,


package com.example.test;

import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.Matrix;
import android.graphics.drawable.BitmapDrawable;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnTouchListener;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.ScrollView;

public class MainActivity extends Activity  {


	private Button b;
	private ImageView imageView;
	private Matrix mMatrix;
	private Bitmap bmp;
    private float scaleWidth=1;  
    private float scaleHeight=1;
    private  int i = 0;
    private ScrollView scrollView;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        b = (Button) this.findViewById(R.id.button1);
        
         
        mMatrix = new Matrix(); 
        imageView = (ImageView) findViewById(R.id.imageView1);
        bmp = ((BitmapDrawable) getResources().getDrawable( 
                R.drawable.campus_map)).getBitmap();
        scrollView = (ScrollView) this.findViewById(R.id.scrollView1);
        
        
//        button是放大作用,图片每次放大1.25倍。
        b.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
//				mMatrix.setRotate(90);
//		        mMatrix.setScale(100f/bmp.getWidth(), 100f/bmp.getHeight());   
//		        Bitmap bm = Bitmap.createBitmap(bmp, 0, 0, bmp.getWidth(), 
//		                bmp.getHeight(), mMatrix, true);
//		        imageView.setImageBitmap(bm);
//		        
				double scale=1.25;  
		        /* 计算这次要放大的比例 */  
		        scaleWidth=(float)(scaleWidth*scale);  
		        scaleHeight=(float)(scaleHeight*scale);  
		        /* 产生reSize后的Bitmap对象 */  
		        Matrix matrix = new Matrix();  
		        matrix.postScale(scaleWidth, scaleHeight);   
		        
		        Bitmap resizeBmp = Bitmap.createBitmap(bmp,0,0,bmp.getWidth(),   
		                bmp.getHeight(),matrix,true);
		        imageView.setImageBitmap(resizeBmp);
    
		     
//		      
			}
		});
        
//        获取imageview点击处的位置。
        imageView.setOnTouchListener(new OnTouchListener() {
			
			@Override
			public boolean onTouch(View v, MotionEvent event) {
				// TODO Auto-generated method stub
				System.out.println("当前获取位置:"+event.getX()+"   "+event.getY());
				return false;
			}
		});
        
//        Random r = new Random();
//        mMatrix.setRotate(90);
//        mMatrix.setScale(100f/bmp.getWidth(), 100f/bmp.getHeight()); 
//        mMatrix.postSkew(0.3f, 0.7f);
        mMatrix.setTranslate(bmp.getWidth(), bmp.getHeight());
        Bitmap bm = Bitmap.createBitmap(bmp, 0, 0, bmp.getWidth(), 
                bmp.getHeight(), mMatrix, true);
        imageView.setImageBitmap(bm); 
        System.out.println("pppp");
        /*mMatrix.setRotate(90);
        mMatrix.setScale(100f/bmp.getWidth(), 100f/bmp.getHeight());   
        Bitmap bm = Bitmap.createBitmap(bmp, 0, 0, bmp.getWidth(), 
                bmp.getHeight(), mMatrix, true);
        imageView.setImageBitmap(bm); */
    }


//    使用activity的onTouch方法是无效的,只能使用dispatchTouchEvent
	@Override
	public boolean dispatchTouchEvent(MotionEvent ev) {
		// TODO Auto-generated method stub
		if(ev.getAction()==MotionEvent.ACTION_DOWN){
			System.out.println("imageview屏幕大小:"+imageView.getWidth()+" "+imageView.getHeight());
//			
//			System.out.println(imageView.getHorizontalFadingEdgeLength());
//			System.out.println(imageView.getVerticalFadingEdgeLength());
		}
		return super.dispatchTouchEvent(ev);
	}
}



地图

  • 大小: 222.8 KB
分享到:
评论

相关推荐

    android 显示网络图片并放大缩小

    该文件可从网络指定位置下载图片,并设置图片在手机上的单点移动,多点触摸及放大缩小。

    Android RecyclerView 点击Item Item变大缩小的效果

    Android RecyclerView 点击Item Item变大的效果Demo

    Android最简单的代码中动态设置图片的大小(自动缩放),位置

    Android代码中动态设置图片的大小(自动缩放),位置

    Android自定义ImageView实现自动放大缩小动画

    这篇讲的是如何生成一个自定义的ImageView,实现自动放大缩小动画。 为什么实现这个功能呢?...通过不断绘制图片的位置,达到放大缩小的功能。 第一种情况实在XML布局文件中直接添加的: public class Cool

    activity anim

    小米图库页面切换动画,进入详情和退出详情时,动画效果,图片从指定位置放大和缩小切换 Activity

    Android项目超炫的图片浏览器.rar

    3. 采用瀑布流布局,根据图片大小和屏幕尺寸自动调整图片位置,实现最佳的视觉效果。 4. 支持图片缩放和裁剪功能,用户可以根据需要放大、缩小或裁剪图片。 5. 提供丰富的图片编辑功能,如添加滤镜、调整亮度、对比...

    Android实现对图片放大、平移和旋转的功能

    现在很多App在查看一张图片的原图时,都会支持图片的手势缩放,手势平移以及图片旋转的操作。那么今天小编就来教大家去简单的实现图片的放大、平移、旋转的操作,有需要的可以参考借鉴。

    android图像绘制(二)画布上放大缩小问题

    android中图像在画布上放大缩小时,图像的边框大小没有改变! 原图如下: 放大后:原来图片的边框没有改变,位置依旧! 所以如果要放置图片的位置的话,就需要做相应的位置移动才可以! 采用如下代码(全屏放置...

    Android代码-PinchImageView

    PinchImageView 这是一个手势体验极棒但使用简单的ImageView控件,实现了手势放大缩小,平移等功能。PinchImageView继承于ImageView,可以在所有ImageView可以...缩放模式下允许图片放大缩小超过边界尺寸 缩放模式下

    Android实现手指触控图片缩放功能

    除此之外,还要确定两个手位置的中心点,图片以这个中心点为参照进行放大和缩小: 计算两点之间的中心点的方法是,点1距原点位置X1(或者Y1)加上点2距原点位置X2(或者Y2),和除以2即可: X0=(X1+X2)/2; Y0=(Y1+Y2)...

    Android代码-ZoomPreviewPicture

    本项目受Google官方demo Zooming a View 启发,实现了点击小图放大至全屏预览,退出全屏恢复至原来位置这两个过程的动画过渡。 常见应用场景如微信朋友圈照片九宫格和微信聊天图片,视频,gif预览,某些手机系统相册等...

    Android UI之ImageView实现图片旋转和缩放

    首先我们开发一个简单的案例,实现图片的放大缩小和旋转: 先看看实现的效果: 缩放截图1: 缩放截图2: 旋转截图1: 旋转截图2: 在实现图片的缩放和旋转时,我们都需要用到android.graphics.

    Android代码-MCropImageView

    emmmm,从效果上来看呢,其实也只是基本的Translation和Scale组合而已,难点在于缩小态下的阻尼计算,左下角那个按钮用来控制留白,填充等状态的切换(好像小红书还有bug,状态切换会导致图片位置不正确,哈哈哈),...

    android Bitmap用法总结

    //放大缩小图片 public static Bitmap zoomBitmap(Bitmap bitmap,int w,int h){ int width = bitmap.getWidth(); int height = bitmap.getHeight(); Matrix matrix = new Matrix(); float scaleWidht = ((float)w / ...

    ImageViewer:图片浏览器,支持图片手势缩放、拖拽等操作,`自定义View`的模式显示,自定义图片加载方式,更加灵活,易于扩展,同时也适用于RecyclerView、ListView的横向和纵向列表模式,最低支持版本为Android 3.0及以上..

    功能图片的基本缩放、滑动微信朋友圈图片放大预览微信朋友圈图片拖拽效果今日头条图片拖拽效果自定义图片加加载图片加载进度条可自定义图片索引与图片加载进度UI传送门推荐 宫格控件,QQ空间九宫格、普通宫格模式、...

    《Google Android SDK开发范例大全(第3版)》.pdf

    4.23 动态放大缩小imageview里的图片 139 4.24 动态旋转图片 142 4.25 猜猜我在想什么 145 4.26 离开与关闭程序的弹出窗口 149 4.27 隐藏式抽屉 151 4.28 手机桌面上的小玩意 155 4.29 手机图片...

    Google Android SDK开发范例大全(第3版) 1/5

    4.23 动态放大缩小ImageView里的图片 4.24 动态旋转图片 4.25 猜猜我在想什么 4.26 离开与关闭程序的弹出窗口 4.27 隐藏式抽屉 4.28 手机桌面上的小玩意 4.29 手机图片搜索管理器 4.30 实时配置桌面上的AppWidget UI...

    Google Android SDK开发范例大全(第3版) 4/5

    4.23 动态放大缩小ImageView里的图片 4.24 动态旋转图片 4.25 猜猜我在想什么 4.26 离开与关闭程序的弹出窗口 4.27 隐藏式抽屉 4.28 手机桌面上的小玩意 4.29 手机图片搜索管理器 4.30 实时配置桌面上的AppWidget UI...

    Google Android SDK开发范例大全(第3版) 3/5

    4.23 动态放大缩小ImageView里的图片 4.24 动态旋转图片 4.25 猜猜我在想什么 4.26 离开与关闭程序的弹出窗口 4.27 隐藏式抽屉 4.28 手机桌面上的小玩意 4.29 手机图片搜索管理器 4.30 实时配置桌面上的AppWidget UI...

    Google Android SDK开发范例大全(第3版) 5/5

    4.23 动态放大缩小ImageView里的图片 4.24 动态旋转图片 4.25 猜猜我在想什么 4.26 离开与关闭程序的弹出窗口 4.27 隐藏式抽屉 4.28 手机桌面上的小玩意 4.29 手机图片搜索管理器 4.30 实时配置桌面上的AppWidget UI...

Global site tag (gtag.js) - Google Analytics