本文实例讲述了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小时内与您取得联系。