全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

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

本文实例讲述了Android编程实现图片放大缩小功能ZoomControls控件用法。分享给大家供大家参考,具体如下:

MainActivity代码:

package example.com.myapplication;
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.view.View.OnClickListener;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ZoomControls;
public class MainActivity extends Activity {
  private LinearLayout llLayout;
  private ZoomControls zoomcontrols;
  private ImageView img;
  private int id=0;
  private int displayWidth;
  private int displayHeight;
  private float scaleWidth = 1;
  private float scaleHeight = 1;
  private Bitmap bitmap;
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    llLayout =(LinearLayout)findViewById(R.id.layout);
    //取得屏幕分辨率大小
    DisplayMetrics dm = new DisplayMetrics();
    getWindowManager().getDefaultDisplay().getMetrics(dm);
    displayWidth = dm.widthPixels;
    //屏幕高度减去zoomControls的高度
    displayHeight = dm.heightPixels;
    bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.c);
    img =(ImageView)findViewById(R.id.image);
    //zoom.hide();隐藏zoomControls
    //zoom.show();显示zoomCOntrols
    zoomcontrols =(ZoomControls)findViewById(R.id.zoomcontrol);
    img =(ImageView)findViewById(R.id.image);
    zoomcontrols.setIsZoomInEnabled(true);
    zoomcontrols.setIsZoomOutEnabled(true);
    //图片放大
    zoomcontrols.setOnZoomInClickListener(new OnClickListener()
    {
      public void onClick(View v)
      {
        int bmpWidth = bitmap.getWidth();
        int bmpHeight = bitmap.getHeight();
        //设置图片放大但比例
        double scale = 1.25;
        //计算这次要放大的比例
        scaleWidth =(float)(scaleWidth*scale);
        scaleHeight =(float)(scaleHeight*scale);
        //产生新的大小但Bitmap对象
        Matrix matrix = new Matrix();
        matrix.postScale(scaleWidth, scaleHeight);
        Bitmap resizeBmp = Bitmap.createBitmap(bitmap,0,0,bmpWidth,bmpHeight,matrix,true);
        img.setImageBitmap(resizeBmp);
      }
    });
    //图片减小
    zoomcontrols.setOnZoomOutClickListener(new OnClickListener()
    {
      public void onClick(View v) {
        int bmpWidth = bitmap.getWidth();
        int bmpHeight = bitmap.getHeight();
        //设置图片放大但比例
        double scale = 0.8;
        //计算这次要放大的比例
        scaleWidth =(float)(scaleWidth*scale);
        scaleHeight =(float)(scaleHeight*scale);
        //产生新的大小但Bitmap对象
        Matrix matrix = new Matrix();
        matrix.postScale(scaleWidth, scaleHeight);
        Bitmap resizeBmp = Bitmap.createBitmap(bitmap,0,0,bmpWidth,bmpHeight,matrix,true);
        img.setImageBitmap(resizeBmp);
      }
    });
  }
}

activity_main布局文件代码:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:orientation="vertical"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  android:id="@+id/layout"
  >
  <ImageView
    android:id="@+id/image"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/c"
    />
  <ZoomControls
    android:id="@+id/zoomcontrol"
    android:layout_gravity="bottom"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    />
  </LinearLayout>

常见方法说明:

hasFocus():判断焦点
hide():隐藏
onTouchEvent(MotionEvent event):现这个方法来处理触摸屏移动事件
setIsZoomInEnabled(boolean isEnabled):是否允许放大
setIsZoomOutEnabled(boolean isEnabled):是否允许缩小
setOnZoomInClickListener(View.OnClickListener listener):注册放大监听器
setOnZoomOutClickListener(View.OnClickListener listener):注册缩小监听器
setZoomSpeed(long speed):设置缩放速度
show():显示

更多关于Android相关内容感兴趣的读者可查看本站专题:《Android图形与图像处理技巧总结》、《Android开发入门与进阶教程》、《Android调试技巧与常见问题解决方法汇总》、《Android基本组件用法总结》、《Android视图View技巧总结》、《Android布局layout技巧总结》及《Android控件用法总结》

希望本文所述对大家Android程序设计有所帮助。


# Android  # 图片  # 放大  # 缩小  # ZoomControls控件  # Android轮播图点击图片放大效果的实现方法  # Android DragImageView实现下拉拖动图片放大效果  # Android中imageView图片放大缩小及旋转功能示例代码  # Android实现对图片放大、平移和旋转的功能  # Android多点触控实现对图片放大缩小平移  # 惯性滑动等功能  # Android实现图片点击放大  # 进阶  # 相关内容  # 感兴趣  # 给大家  # 更多关于  # 解决方法  # 方法来  # 所述  # 图像处理  # 程序设计  # 讲述了  # float  # displayHeight  # displayWidth  # scaleWidth  # Override  # bitmap  # scaleHeight  # llLayout  # private 


相关文章: 购物网站制作公司有哪些,哪个购物网站比较好?  陕西网站制作公司有哪些,陕西凌云电器有限公司官网?  网站规划与制作是什么,电子商务网站系统规划的内容及步骤是什么?  网站app免费制作软件,能免费看各大网站视频的手机app?  高防服务器租用指南:配置选择与快速部署攻略  制作网站的公司有哪些,做一个公司网站要多少钱?  制作网站怎么制作,*游戏网站怎么搭建?  如何正确选择百度移动适配建站域名?  矢量图网站制作软件,用千图网的一张矢量图做公司app首页,该网站并未说明版权等问题,这样做算不算侵权?应该如何解决?  建站IDE高效指南:快速搭建+SEO优化+自适应模板全解析  国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?  如何高效利用200m空间完成建站?  ,在苏州找工作,上哪个网站比较好?  网站制作免费,什么网站能看正片电影?  如何在VPS电脑上快速搭建网站?  南阳网站制作公司推荐,小学电子版试卷去哪里找资源好?  建站之星收费标准详解:套餐费用及年费价格表一览  广州网站建站公司选择指南:建站流程与SEO优化关键词解析  如何登录建站主机?访问步骤全解析  广州营销型建站服务商推荐:技术优势与SEO优化解析  php8.4新语法match怎么用_php8.4match表达式替代switch【方法】  网站制作知乎推荐,想做自己的网站用什么工具比较好?  企业微网站怎么做,公司网站和公众号有什么区别?  建站之星北京办公室:智能建站系统与小程序生成方案解析  魔毅自助建站系统:模板定制与SEO优化一键生成指南  建站之星Pro快速搭建教程:模板选择与功能配置指南  图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?  网站制作培训多少钱一个月,网站优化seo培训课程有哪些?  免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?  北京营销型网站制作公司,可以用python做一个营销推广网站吗?  如何在IIS中新建站点并配置端口与物理路径?  简单实现Android文件上传  高防服务器租用首荐平台,企业级优惠套餐快速部署  建站之星下载版如何获取与安装?  天河区网站制作公司,广州天河区如何办理身份证?需要什么资料有预约的网站吗?  已有域名能否直接搭建网站?  定制建站方案优化指南:企业官网开发与建站费用解析  如何快速搭建高效香港服务器网站?  网站代码制作软件有哪些,如何生成自己网站的代码?  如何在阿里云完成域名注册与建站?  贸易公司网站制作流程,出口贸易网站设计怎么做?  如何快速搭建虚拟主机网站?新手必看指南  早安海报制作网站推荐大全,企业早安海报怎么每天更换?  股票网站制作软件,网上股票怎么开户?  如何在阿里云域名上完成建站全流程?  如何选择CMS系统实现快速建站与SEO优化?  如何在西部数码注册域名并快速搭建网站?  如何快速搭建高效简练网站?  定制建站策划方案_专业建站与网站建设方案一站式指南  大连网站设计制作招聘信息,大连投诉网站有哪些? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。