`

ZoomControls

 
阅读更多
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Matrix;
import android.os.Bundle;
import android.util.DisplayMetrics;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ZoomControls;

public class ZoomControlsImageView extends Activity {
     private ImageView imageView;
     private ZoomControls zoomControls;
     private LinearLayout layout1;
     private int id = 0;
     private  int displayWidth;
     private int displayHeight;
     private int imageWidth;
     private int imageHeight;
     private float scaleWidth = 1;
     private float scaleHeight = 1;
     private Bitmap bmp;
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.zoomcontrols_imageview);
         layout1 = (LinearLayout)findViewById(R.id.layout1);
        /**取得屏幕的分辨率**/
         DisplayMetrics dm = new DisplayMetrics();
         getWindowManager().getDefaultDisplay().getMetrics(dm);
         displayWidth = dm.widthPixels;
         displayHeight = dm.heightPixels;
         bmp = BitmapFactory.decodeResource(getResources(), R.drawable.han);
         imageWidth = bmp.getWidth();
         imageHeight = bmp.getHeight();
         imageView = (ImageView)findViewById(R.id.imageView);
         zoomControls =(ZoomControls) findViewById(R.id.zoomControls1);
         zoomControls.setIsZoomInEnabled(true);
         zoomControls.setIsZoomOutEnabled(true);
         /**图片放大**/
         zoomControls.setOnZoomInClickListener(new ZoomControls.OnClickListener(){
              public void onClick(View v) {
                 zoomControls.setIsZoomOutEnabled(true);
                 int bmpWidth = bmp.getWidth();
                 int bmpHeight = bmp.getHeight();
                 // 设置图片的放大比例
                 double scale = 1.25;
                 /**计算这次要放大的比例**/
                     scaleWidth = (float)(scaleWidth*scale);
                     scaleHeight = (float)(scaleHeight*scale);
                     Matrix matrix = new Matrix();
                     matrix.postScale(scaleWidth, scaleHeight);
                     Bitmap resizeBmp = Bitmap.createBitmap(bmp, 0, 0, bmpWidth, bmpHeight,matrix,false);
                     if(resizeBmp.getHeight() >= displayHeight ){
                         zoomControls.setIsZoomInEnabled(false);
                     }
                     imageView.setImageBitmap(resizeBmp);
             }});
         /**图片的缩小**/
         zoomControls.setOnZoomOutClickListener(new ZoomControls.OnClickListener(){

             public void onClick(View v) {
                 zoomControls.setIsZoomInEnabled(true);
                 int bmpWidth = bmp.getWidth();
                 int bmpHeight = bmp.getHeight();
                 double scale = 0.8;1                 scaleWidth = (float)(scaleWidth*scale);
                 scaleHeight = (float)(scaleHeight*scale);
                 Matrix matrix = new Matrix();
                 matrix.postScale(scaleWidth, scaleHeight);
                 Bitmap resizeBmp = Bitmap.createBitmap(bmp, 0, 0, bmpWidth, bmpHeight,matrix,true);
                 if(resizeBmp.getHeight() <= imageHeight){
                     zoomControls.setIsZoomOutEnabled(false);
                 }
                 imageView.setImageBitmap(resizeBmp);
             }});
     }
 }
分享到:
评论

相关推荐

    ZoomControls放大与缩小

    ZoomControls控件是一个可以缩放的控件,以下是它但一些主要但方法 hasFocus ():判断焦点 hide ():隐藏 onTouchEvent (MotionEvent event):现这个方法来处理触摸屏移动事件 setIsZoomInEnabled (boolean is...

    智能家居系统 缩放控件ZoomControls.doc

    在智能家居系统中,缩放控件ZoomControls是一个重要的交互元素,它主要用于调整用户界面中的视图大小,使得用户能够更方便地查看和操作内容。在本文中,我们将深入探讨ZoomControls的功能特性、类继承结构、属性方法...

    ZoomControls 缩放

    如何使用ZoomControls控件实现布局/字体的缩放 一般应用开发过程中,会在屏幕的右下角有两个缩放控件(缩小和放大),这个控件就是ZoomControls 如何使用其实现放大缩小功能: 1:首先在布局文件中配置...

    Android编程实现图片放大缩小功能ZoomControls控件用法实例

    //图片缩小 zoomcontrols.setOnZoomOutClickListener(new OnClickListener() { public void onClick(View v) { int bmpWidth = bitmap.getWidth(); int bmpHeight = bitmap.getHeight(); //设置图片缩小但比例 ...

    移动互联网-缩放控件ZoomControls.ppt

    移动互联网应用

    ArcGIS Runtime SDK for Android开发基础

    ZoomControls zoomControls = new ZoomControls(this); zoomControls.setOnZoomInClickListener(new View.OnClickListener() { @Override public void onClick(View v) { mapView.zoomIn(); } }); zoomControls....

    android缩放组件源码

    在这个项目中,我们可能会看到`ZoomControls`类的实现,这是一个预定义的Android控件,用于提供简单的放大和缩小功能。`ZoomControls`通常用于地图应用或其他需要用户进行缩放操作的场景。 源码分析: 1. **...

    指尖疯Android4.4视频第5集:图像类系列组件

    4. ZoomControls控件。 ImageView/ImageButton控件属于非常简单的控件,我们就从这两个入手开始。剩余的控件和手机等移动设备关系比较紧密,我们随后看看基于移动设备有什么新特性的控件。本集的口号是“我的面子我...

    Android开发教程之Android控件--千锋培训

    这篇教程主要涵盖了九种常见的Android控件及其使用示例,包括ZoomControls、Include、VideoView、WebView、RatingBar、Tab、Spinner、Chronometer以及ScrollView。下面我们将逐一详细探讨这些控件的功能和用法。 1....

    隐藏WebView的缩放按钮

    ((View) zoomControls).setVisibility(View.GONE); } } catch (NoSuchFieldException | IllegalAccessException e) { Log.e("WebView", "Error accessing zoom controls", e); } ``` 3. **处理版本兼容性**:在...

    Android 类似于放大镜源码.zip

    在这个项目中,`ZoomControls`可能是自定义的一个类,用于实现放大镜的控制逻辑。 1. **放大与缩小**:在Android中,可以使用`ScaleGestureDetector`来检测用户的双指缩放手势,从而实现图像的放大和缩小。当用户在...

    Android_UI类继承关系图

    21. ZoomControls:用于视频播放时的缩放控制。 22. AnalogClock和DigitalClock:分别显示模拟时钟和数字时钟。 这些UI类根据它们在Android框架中的位置和它们的继承关系组织成一个树形结构图。了解这个结构有助于...

    Android-GPS定位与Google地图管理模块的代码设计.pdf

    - 缩放控制:可以使用自定义组件或Android提供的`ZoomControls`组件来控制地图的缩放。通过调用`MapView`的相关方法可以实现地图的放大和缩小。 - 地图模式:`MapView`支持卫星视图、街景模式等多种显示模式,可以...

    广东地图 fusionMap纯手工打造

    6. `zoomControls`:设置缩放和平移控件。 7. `mapProvider`:指定地图提供者,如Google Maps、Bing Maps等。 在“广东地图”这个项目中,XML配置文件可能详细列出了广东省内各个城市的边界坐标,以及对应的交互...

    Android2.2 API中文文档——View

    - **ZoomControls**:缩放控制器视图,用于控制缩放操作。 #### XML属性 下面是一些常用的`View`类的XML属性及其描述: - **android:background**:设置背景色或背景图片。可以通过以下方式设置背景为透明:“@...

    Android地图使用文档

    接着,获取`MapView`的`ZoomControls`并添加到布局中,让用户可以方便地缩放地图。`mapController.setZoom(15);`设置地图的初始缩放级别为15,这意味着地图会被放大到一个特定的级别,用户可以看到更详细的地图细节...

    Android控件及布局的使用

    - **ZoomControls**:提供缩放功能的控件。 ##### 4.3.18 Include - **Include**:用于重复利用的布局。 ##### 4.3.19 VideoView - **VideoView**:用于播放视频。 ##### 4.3.20 WebView - **WebView**:用于...

    Android Map

    开发者也可以通过设置ZoomControls或者使用GestureDetector监听用户手势来实现程序控制的地图缩放和平移。 3. **位置查询**:Android提供了Geocoder类用于地址解析,可以将地理坐标(经纬度)转换为人类可读的地址...

    Android开发规范

    17. **ZoomControls:zmCtrl** 18. **Include:ind** 19. **VideoView:vdoVi** 20. **WebView:webView** 21. **RatingBar:ratBar** 22. **Tab:tab** 23. **Spinner:spn** 24. **Chronometer:Cmt** 25. **...

Global site tag (gtag.js) - Google Analytics