Android编程实现图片放大缩小功能ZoomControls控件用法实例
发布时间 - 2026-01-11 03:23:54 点击率:次本文实例讲述了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
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
php结合redis实现高并发下的抢购、秒杀功能的实例
高端网站建设与定制开发一站式解决方案 中企动力
Laravel如何发送邮件_Laravel Mailables构建与发送邮件的简明教程
网站广告牌制作方法,街上的广告牌,横幅,用PS还是其他软件做的?
Laravel如何配置Horizon来管理队列?(安装和使用)
Laravel DB事务怎么使用_Laravel数据库事务回滚操作
如何快速搭建二级域名独立网站?
php打包exe后无法访问网络共享_共享权限设置方法【教程】
美食网站链接制作教程视频,哪个教做美食的网站比较专业点?
Laravel如何与Docker(Sail)协同开发?(环境搭建教程)
Laravel Asset编译怎么配置_Laravel Vite前端构建工具使用
html5如何实现懒加载图片_ intersectionobserver api用法【教程】
Android仿QQ列表左滑删除操作
如何用wdcp快速搭建高效网站?
DeepSeek是免费使用的吗 DeepSeek收费模式与Pro版本功能详解
如何在云指建站中生成FTP站点?
Edge浏览器怎么启用睡眠标签页_节省电脑内存占用优化技巧
javascript中数组(Array)对象和字符串(String)对象的常用方法总结
敲碗10年!Mac系列传将迎来「触控与联网」双革新
大连企业网站制作公司,大连2025企业社保缴费网上缴费流程?
Laravel Eloquent模型如何创建_Laravel ORM基础之Model创建与使用教程
谷歌Google入口永久地址_Google搜索引擎官网首页永久入口
如何在Windows虚拟主机上快速搭建网站?
JS弹性运动实现方法分析
佛山企业网站制作公司有哪些,沟通100网上服务官网?
如何在宝塔面板创建新站点?
如何利用DOS批处理实现定时关机操作详解
Laravel如何升级到最新的版本_Laravel版本升级流程与兼容性处理
如何快速配置高效服务器建站软件?
如何在阿里云虚拟主机上快速搭建个人网站?
Claude怎样写结构化提示词_Claude结构化提示词写法【教程】
PythonWeb开发入门教程_Flask快速构建Web应用
如何快速启动建站代理加盟业务?
使用PHP下载CSS文件中的所有图片【几行代码即可实现】
如何用PHP快速搭建高效网站?分步指南
Laravel队列任务超时怎么办_Laravel Queue Timeout设置详解
Laravel全局作用域是什么_Laravel Eloquent Global Scopes应用指南
简单实现Android文件上传
如何在Windows 2008云服务器安全搭建网站?
Laravel Docker环境搭建教程_Laravel Sail使用指南
Win11应用商店下载慢怎么办 Win11更改DNS提速下载【修复】
JS实现鼠标移上去显示图片或微信二维码
怎么用AI帮你为初创公司进行市场定位分析?
为什么要用作用域操作符_php中访问类常量与静态属性的优势【解答】
google浏览器怎么清理缓存_谷歌浏览器清除缓存加速详细步骤
EditPlus中的正则表达式 实战(2)
详解Android图表 MPAndroidChart折线图
Laravel怎么使用Session存储数据_Laravel会话管理与自定义驱动配置【详解】
javascript事件捕获机制【深入分析IE和DOM中的事件模型】
详解CentOS6.5 安装 MySQL5.1.71的方法

