推荐安卓开发神器(里面有各种UI特效和android代码库实例)
public class ex04_22 extends Activity{ private ImageView mImageView; private Button btn1,btn2; private TextView mTextView; private AbsoluteLayout layout1; private Bitmap bmp; private int id=0; private int displayWidth,displayHeight; private float scaleWidth=1,scaleHeight=1; private final static String filename="/data/data/ex04_22.lcs/ex04_22_2.png"; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); //取得屏幕分辨率 DisplayMetrics dm=new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(dm); displayWidth=dm.widthPixels; displayHeight=dm.heightPixels-80; bmp=BitmapFactory.decodeResource(this.getResources(),R.drawable.ex04_22_1); layout1=(AbsoluteLayout)findViewById(R.id.layout1); mImageView=(ImageView)findViewById(R.id.myImageView); btn1=(Button)findViewById(R.id.myButton1); btn1.setOnClickListener(new OnClickListener(){ public void onClick(View v){ small(); } }); btn2=(Button)findViewById(R.id.myButton2); btn2.setOnClickListener(new OnClickListener(){ public void onClick(View v){ big(); } }); } private void small(){ //获得Bitmap的高和宽 int bmpWidth=bmp.getWidth(); int bmpHeight=bmp.getHeight(); //设置缩小比例 double scale=0.8; //计算出这次要缩小的比例 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, bmpWidth, bmpHeight, matrix, true); if(id==0){ layout1.removeView(mImageView); } else{ layout1.removeView((ImageView)findViewById(id)); } id++; ImageView imageView=new ImageView(this); imageView.setId(id); imageView.setImageBitmap(resizeBmp); layout1.addView(imageView); setContentView(layout1); btn2.setEnabled(true); } private void big(){ //获得Bitmap的高和宽 int bmpWidth=bmp.getWidth(); int bmpHeight=bmp.getHeight(); //设置缩小比例 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, bmpWidth, bmpHeight, matrix, true); if(id==0){ layout1.removeView(mImageView); } else{ layout1.removeView((ImageView)findViewById(id)); } id++; ImageView imageView=new ImageView(this); imageView.setId(id); imageView.setImageBitmap(resizeBmp); layout1.addView(imageView); setContentView(layout1); if(scaleWidth*scale*bmpWidth>displayWidth||scaleHeight*scale*scaleHeight>displayHeight){ btn2.setEnabled(false); } } }
xml文件
<?xml version="1.0" encoding="utf-8"?> <AbsoluteLayout android:id="@+id/layout1" android:layout_width="fill_parent" android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android" > <ImageView android:id="@+id/myImageView" android:layout_width="200px" android:layout_height="150px" android:src="@drawable/ex04_22_1" android:layout_x="0px" android:layout_y="0px" > </ImageView> <Button android:id="@+id/myButton1" android:layout_width="90px" android:layout_height="60px" android:text="缩小" android:textSize="18sp" android:layout_x="20px" android:layout_y="372px" > </Button> <Button android:id="@+id/myButton2" android:layout_width="90px" android:layout_height="60px" android:text="放大" android:textSize="18sp" android:layout_x="210px" android:layout_y="372px" > </Button> </AbsoluteLayout>
相关推荐
Android中使用`Matrix`实现图片的放大、缩小和拖动功能,主要步骤包括设置`ImageView`的`scaleType`为`matrix`,创建并管理`Matrix`对象,以及正确处理触摸事件,根据触摸事件的不同类型来决定执行拖动或缩放操作。...
标题"双击放大缩小图片"和描述所提及的是一个专门处理这一功能的View工具类。下面将详细阐述实现这个功能的关键知识点。 1. **自定义View**: 在Android中,为了实现特定的UI效果,我们常常需要创建自定义View。这是...
在Android开发中,实现图片随手势放大缩小的功能是一项常见的需求,尤其在开发图像查看器或者照片浏览应用时。这个功能让用户体验更加流畅自然,能够自由地探索图片的细节。以下将详细讲解如何实现这一功能。 首先...
为了实现放大缩小功能,通常会配合ScaleGestureDetector来检测用户的双指缩放手势,同时使用Matrix来处理图片的变换。Matrix类提供了缩放、平移等操作,通过改变其内部矩阵,可以动态调整ImageView中的图片。 3. ...
当你需要放大或缩小视频画面时,你需要创建一个Matrix对象,然后根据目标放大倍数调用`postScale()`方法。如果要实现局部放大,还需要计算出要放大的区域的坐标,确保只有该区域内的内容被放大。 为了将这些变换...
在图片放大缩小中,我们需要改变`ImageView`的`Matrix`属性来实现图片的动态调整。当用户执行缩放手势时,我们根据`ScaleGestureDetector`提供的比例因子更新`Matrix`。 4. **OnTouchListener与GestureListener**: ...
总结一下,Android图片的放大缩小及旋转涉及到`ImageView`的使用、手势识别、`Matrix`变换以及图片的加载与内存管理。理解并掌握这些知识点,能够帮助开发者在Android应用中实现丰富的图片交互功能。在实际操作中,...
最后,为了使图片放大缩小效果平滑,可以利用动画API(如ObjectAnimator或ValueAnimator)来渐变地改变图片的大小,而不是立即跳到新的尺寸,这样可以提供更好的用户体验。 总的来说,实现Android两点触摸放大缩小...
在Android开发中,图片双击放大缩小是一种常见的交互方式,为用户提供更好的查看体验。这个开源项目 "ImageViewZoom-master" 正是提供了这样的功能,让用户在查看图片时可以通过双击手势来实现图片的缩放操作。下面...
10. **性能考量**: 当处理大量图片或高分辨率图片时,要注意内存管理,合理使用Bitmap的配置(如inSampleSize,inPreferredConfig等),以及及时释放不再使用的Bitmap对象,防止内存泄漏。 通过上述技术,开发者...
为了实现图片的放大缩小,我们可以使用Matrix类来改变ImageView的变换矩阵。Matrix提供了scale()方法用于缩放,我们可以通过计算两个手指之间的距离变化来确定缩放的比例。当用户在屏幕上同时放置两个手指并移动它们...
在Android开发中,实现图片的放大缩小功能是常见的需求,特别是在设计相册或者查看图片的应用中。本Demo主要展示了如何在Android环境中实现这样的功能,既支持网络图片的加载,也支持本地图片的显示,并允许用户进行...
在Android开发中,图片...综上所述,这个示例展示了如何使用自定义View和按键事件实现简单的图片放大缩小功能。在实际项目中,可能需要结合手势识别、`Matrix` 变换以及内存管理等技术来提供更流畅、更高效的用户体验。
用户可以通过单击切换放大/缩小状态,双击快速放大或缩小,以及通过滑动来平移图片。这个功能对于图片查看器或者编辑器类的应用非常实用。记得在实际项目中,还要考虑手势冲突、图片边界判断等问题,以提供更好的...
本文将深入探讨如何利用Matrix处理ImageView中的图片缩放和平移操作。 首先,我们需要了解Matrix的基本概念。Matrix是一个3x3的浮点数矩阵,用于存储图像变换参数。在二维空间中,图像的坐标可以通过应用Matrix进行...
要实现"以鼠标为中心放大缩小控件"的功能,我们需要以下步骤: 1. **创建MatrixTransform对象**:在XAML中为控件定义一个MatrixTransform,并将其设置为Transform属性,如`...
因此,通常会使用图片加载库,如Glide、Picasso或 Fresco,它们能进行图片的内存和磁盘缓存管理,并支持按需加载和缩放图片,减少内存占用。 7. **性能优化**: 当图片过大时,需要考虑使用`BitmapFactory.Options...
在Android开发中,图片的放大缩小功能是移动应用中常见的需求,尤其在图像查看器、照片编辑器等应用中更是必不可少。本节我们将详细探讨如何实现这个功能,主要涉及的知识点包括手势检测、图片矩阵变换以及视图更新...
- 在Android中,使用`Matrix`类来实现图片的放大和缩小。通过设置`ScaleType`属性,如`CENTER_CROP`、`FIT_CENTER`等,可以改变图片在`ImageView`中的显示方式。同时,可以通过监听手势事件,计算手势的比例,更新`...
图片的放大缩小可以通过改变ImageView的ScaleType属性来实现,如设置为`Matrix`。然后在多点触摸事件中,根据两个手指之间的距离变化调整图片的缩放比例。同时,为了保持图片的清晰度,可能需要对图片进行矩阵操作...