ZoomControls控件是一个可以缩放控件,可以实现两个按钮控制图片的大小
<?xml version="1.0" encoding="utf-8"?> <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/foot" /> <ZoomControls android:id="@+id/zoomcontrol" android:layout_gravity="bottom" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout>
package com.example.yanlei.my; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.Menu; import android.view.MenuItem; import android.os.Bundle; import android.app.Activity; import android.widget.Toast; import android.view.Menu; import android.view.MenuItem; 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 AppCompatActivity { 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.foot); 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); } }); } }
参考:http://blog.csdn.net/jianghuiquan/article/details/8350538
分类:
android
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
2012-02-24 各城市主要的三维(3d)建筑物模型库