package com.wansha; import android.app.Activity; import android.app.AlertDialog; import android.content.DialogInterface; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Matrix; import android.os.Bundle; import android.util.DisplayMetrics; import android.util.Log; import android.view.KeyEvent; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.ImageView; import android.widget.RelativeLayout; public class Activity31 extends Activity { private RelativeLayout layout; private Button big; private Button small; private ImageView bg; private Bitmap map; private float scaleH = 1; private float scaleW = 1; private int id; private DisplayMetrics metrics; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); this.layout = (RelativeLayout)this.findViewById(R.id.la); this.big = (Button)this.findViewById(R.id.big); this.small = (Button)this.findViewById(R.id.small); // this.image2 = (ImageView)this.findViewById(R.id.image1); // this.image2.setImageResource(R.drawable.left); this.bg = (ImageView)this.findViewById(R.id.bg); // this.bg.setImageResource(R.drawable.tttt); this.map = BitmapFactory.decodeResource(getResources(), R.drawable.tttt); Log.d("mydebug", "imageheigh---->" + map.getWidth() + "imagewidth------->" + map.getHeight()); metrics = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(metrics); // Bitmap bm = Bitmap.createBitmap(map, 0, 0, 100, 100); // this.bg.setImageBitmap(bm); Log.d("mydebug", "screen_width--------->" + metrics.widthPixels + "screen_height----------->" + metrics.heightPixels); this.big.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { float scale = 1.25f; Matrix matrix = new Matrix(); scaleW = scaleW * scale; scaleH = scaleH * scale; if(scaleH*map.getHeight() >= metrics.heightPixels || scaleW*map.getWidth() >= metrics.widthPixels){ big.setEnabled(false); return; } if(id == 0){ layout.removeView(bg); }else{ layout.removeView((ImageView)findViewById(id)); } matrix.postScale(scaleW, scaleH); Bitmap bitmap = Bitmap.createBitmap(map, 0, 0, map.getWidth(), map.getHeight(), matrix, true); bg.setImageBitmap(bitmap); ImageView image = new ImageView(Activity31.this); image.setId(++id); image.setImageBitmap(bitmap); layout.addView(image); setContentView(layout); System.out.println("bit---------->" + scaleH*scale*map.getHeight() + " : " + scaleW*scale*map.getWidth()); if(scaleH*scale*map.getHeight() >= metrics.heightPixels || scaleW*scale*map.getWidth() >= metrics.widthPixels){ big.setEnabled(false); }else{ big.setEnabled(true); } small.setEnabled(true); } }); this.small.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { if(id == 0){ layout.removeView(bg); }else{ layout.removeView((ImageView)findViewById(id)); } float scale = 0.8f; Matrix matrix = new Matrix(); scaleW = scaleW * scale; scaleH = scaleH * scale; matrix.postScale(scaleW, scaleH); Bitmap bitmap = Bitmap.createBitmap(map, 0, 0, map.getWidth(), map.getHeight(), matrix, true); bg.setImageBitmap(bitmap); ImageView image = new ImageView(Activity31.this); image.setId(++id); image.setImageBitmap(bitmap); layout.addView(image); setContentView(layout); if(scaleH*scale <= 0.4){ small.setEnabled(false); }else{ big.setEnabled(true); } big.setEnabled(true); } }); } @Override protected void onSaveInstanceState(Bundle outState) { // TODO Auto-generated method stub super.onSaveInstanceState(outState); } @Override public boolean onKeyDown(int keyCode, KeyEvent event) { System.out.println("keycode--------->" + keyCode); if(keyCode == KeyEvent.KEYCODE_BACK){ new AlertDialog.Builder(this).setTitle("退出").setMessage("确定要退出吗?").setPositiveButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { finish(); android.os.Process.killProcess(android.os.Process.myPid()); } }).setNegativeButton("取消", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { } }).show(); } return super.onKeyDown(keyCode, event); } }
您还没有登录,请您登录后再发表评论
这个名为"Android-一个Android图片缩放查看控件支持手势"的项目,旨在提供一个自定义的视图控件,它允许用户通过手势进行图片的放大、缩小以及平移操作,提升用户体验。下面我们将深入探讨这个控件的关键知识点和...
Android实现图片手势缩放、移动、双击放大缩小。
在Android开发中,实现图片随手势放大缩小的功能是一项常见的需求,尤其在开发图像查看器或者照片浏览应用时。这个功能让用户体验更加流畅自然,能够自由地探索图片的细节。以下将详细讲解如何实现这一功能。 首先...
在Android开发中,图片的放大和缩小...总的来说,Android图片放大缩小和多触屏的支持涉及到触摸事件处理、Matrix变换以及手势识别等多个知识点。通过理解这些概念并结合实际代码,可以创建出功能完善的图像查看组件。
总的来说,Android图片的放大缩小涉及到了Bitmap的创建、解码、缩放,以及多点触控手势的处理。理解并掌握这些知识点,可以让你在开发过程中更加游刃有余,提供给用户更好的图片浏览体验。在实际开发中,要兼顾性能...
因此,通常会使用图片加载库,如Glide、Picasso或 Fresco,它们能进行图片的内存和磁盘缓存管理,并支持按需加载和缩放图片,减少内存占用。 7. **性能优化**: 当图片过大时,需要考虑使用`BitmapFactory.Options...
本示例是关于如何在Android应用中实现图片的高效缩放,特别是通过使用一个名为"PhotoViewAttacher"的开源控件的简化版本。以下将详细介绍这个话题。 首先,我们需要理解Android中图片缩放的基本概念。在Android系统...
这个“android 图片放大缩小移动 demo”项目旨在提供一个实例,演示如何在Android应用中实现这些功能。接下来,我们将深入探讨相关知识点。 1. **ImageView组件**:在Android中,显示图片的基本组件是`ImageView`。...
本文将基于标题"Android图片放大缩小旋转完美demo"和描述,深入探讨Android中如何实现图片的触摸缩放、旋转以及在网络环境下的加载,同时会提及到使用ViewPager展示图片的功能。 首先,Android提供了一些基本的图像...
对于优化用户体验和系统资源利用,有效地缩放图片至关重要。本文将深入探讨如何在Android开发中实现图片的高效缩放,特别是针对固定大小缩略图的生成。 #### 一、理解`BitmapFactory.Options` `BitmapFactory....
在Android开发中,实现图片的放大缩小功能以及多触点缩放是一项常见的需求,尤其在设计用户界面或者处理图像应用时。本节我们将详细探讨如何在Android应用中实现实现这个功能,主要围绕以下几个关键知识点: 1. **...
如果需要用户能够通过触摸屏幕手势来直接缩放图片,可以实现`GestureDetector`和`ScaleGestureDetector`。这两个类可以帮助我们检测用户的单击、滑动和缩放手势,并据此更新图片的缩放比例。 7. **自定义View**: ...
默认情况下,它会按比例缩放图片以适应其大小,但不提供直接的缩放操作。为了实现图片的放大和缩小,我们可以利用ImageView的一些属性和技巧,如ScaleType、Matrix等。 1. **ScaleType**: ImageView提供了多种...
2. **手势识别**: 实现图片的放大缩小,我们需要使用Android的手势库(`android.gesture`),特别是` GestureDetector`和` ScaleGestureDetector`。`GestureDetector`用于识别单击、双击等基本手势,而`...
Android图片放大缩小操作范例,单击对应的按钮,可将一张图片进行放大或缩小显示,实现的步骤大概是: 取得屏幕分辨率大小 ,对获取到的屏幕高度扣除下方Button高度,定义缩小按钮onClickListener 和...
- 用户通常通过手指滑动和双击来触发图片的放大和缩小,因此需要监听`MotionEvent`。 - `GestureDetector`和`ScaleGestureDetector`可以识别出用户的缩放、滑动等手势,从而触发相应的动画。 5. **布局管理**: ...
下面将详细介绍Android图片放大缩小的相关知识点。 1. **Bitmap对象**:Bitmap是Android系统中的一个核心类,用于表示位图图像。它包含了图像的像素数据,可以用来加载、显示、绘制和处理图像。在进行图片缩放时,...
在Android开发中,图片的放大和缩小是移动应用中常见的交互功能,特别是在浏览图片或查看地图等场景。本文将深入探讨如何实现“双指缩放”和“双击缩放”的功能,为你的Android应用增添丰富的用户体验。 首先,我们...
在Android开发中,实现图片的缩放、双击旋转以及拖动展示是一项常见的需求,尤其在设计用户界面或开发图像处理应用时。本教程将详细讲解如何在Android中实现这样的功能,主要涉及以下几个核心知识点: 1. **...
相关推荐
这个名为"Android-一个Android图片缩放查看控件支持手势"的项目,旨在提供一个自定义的视图控件,它允许用户通过手势进行图片的放大、缩小以及平移操作,提升用户体验。下面我们将深入探讨这个控件的关键知识点和...
Android实现图片手势缩放、移动、双击放大缩小。
在Android开发中,实现图片随手势放大缩小的功能是一项常见的需求,尤其在开发图像查看器或者照片浏览应用时。这个功能让用户体验更加流畅自然,能够自由地探索图片的细节。以下将详细讲解如何实现这一功能。 首先...
在Android开发中,图片的放大和缩小...总的来说,Android图片放大缩小和多触屏的支持涉及到触摸事件处理、Matrix变换以及手势识别等多个知识点。通过理解这些概念并结合实际代码,可以创建出功能完善的图像查看组件。
总的来说,Android图片的放大缩小涉及到了Bitmap的创建、解码、缩放,以及多点触控手势的处理。理解并掌握这些知识点,可以让你在开发过程中更加游刃有余,提供给用户更好的图片浏览体验。在实际开发中,要兼顾性能...
因此,通常会使用图片加载库,如Glide、Picasso或 Fresco,它们能进行图片的内存和磁盘缓存管理,并支持按需加载和缩放图片,减少内存占用。 7. **性能优化**: 当图片过大时,需要考虑使用`BitmapFactory.Options...
本示例是关于如何在Android应用中实现图片的高效缩放,特别是通过使用一个名为"PhotoViewAttacher"的开源控件的简化版本。以下将详细介绍这个话题。 首先,我们需要理解Android中图片缩放的基本概念。在Android系统...
这个“android 图片放大缩小移动 demo”项目旨在提供一个实例,演示如何在Android应用中实现这些功能。接下来,我们将深入探讨相关知识点。 1. **ImageView组件**:在Android中,显示图片的基本组件是`ImageView`。...
本文将基于标题"Android图片放大缩小旋转完美demo"和描述,深入探讨Android中如何实现图片的触摸缩放、旋转以及在网络环境下的加载,同时会提及到使用ViewPager展示图片的功能。 首先,Android提供了一些基本的图像...
对于优化用户体验和系统资源利用,有效地缩放图片至关重要。本文将深入探讨如何在Android开发中实现图片的高效缩放,特别是针对固定大小缩略图的生成。 #### 一、理解`BitmapFactory.Options` `BitmapFactory....
在Android开发中,实现图片的放大缩小功能以及多触点缩放是一项常见的需求,尤其在设计用户界面或者处理图像应用时。本节我们将详细探讨如何在Android应用中实现实现这个功能,主要围绕以下几个关键知识点: 1. **...
如果需要用户能够通过触摸屏幕手势来直接缩放图片,可以实现`GestureDetector`和`ScaleGestureDetector`。这两个类可以帮助我们检测用户的单击、滑动和缩放手势,并据此更新图片的缩放比例。 7. **自定义View**: ...
默认情况下,它会按比例缩放图片以适应其大小,但不提供直接的缩放操作。为了实现图片的放大和缩小,我们可以利用ImageView的一些属性和技巧,如ScaleType、Matrix等。 1. **ScaleType**: ImageView提供了多种...
2. **手势识别**: 实现图片的放大缩小,我们需要使用Android的手势库(`android.gesture`),特别是` GestureDetector`和` ScaleGestureDetector`。`GestureDetector`用于识别单击、双击等基本手势,而`...
Android图片放大缩小操作范例,单击对应的按钮,可将一张图片进行放大或缩小显示,实现的步骤大概是: 取得屏幕分辨率大小 ,对获取到的屏幕高度扣除下方Button高度,定义缩小按钮onClickListener 和...
- 用户通常通过手指滑动和双击来触发图片的放大和缩小,因此需要监听`MotionEvent`。 - `GestureDetector`和`ScaleGestureDetector`可以识别出用户的缩放、滑动等手势,从而触发相应的动画。 5. **布局管理**: ...
下面将详细介绍Android图片放大缩小的相关知识点。 1. **Bitmap对象**:Bitmap是Android系统中的一个核心类,用于表示位图图像。它包含了图像的像素数据,可以用来加载、显示、绘制和处理图像。在进行图片缩放时,...
在Android开发中,图片的放大和缩小是移动应用中常见的交互功能,特别是在浏览图片或查看地图等场景。本文将深入探讨如何实现“双指缩放”和“双击缩放”的功能,为你的Android应用增添丰富的用户体验。 首先,我们...
在Android开发中,实现图片的缩放、双击旋转以及拖动展示是一项常见的需求,尤其在设计用户界面或开发图像处理应用时。本教程将详细讲解如何在Android中实现这样的功能,主要涉及以下几个核心知识点: 1. **...