<?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

ZoomControls控件是一个可以缩放控件,可以实现两个按钮控制图片的大小的更多相关文章

  1. 使用VideoView自定义一个播放器控件

    介绍 最近要使用播放器做一个简单的视频播放功能,开始学习VideoView,在横竖屏切换的时候碰到了点麻烦,不过在查阅资料后总算是解决了.在写VideoView播放视频时候定义控制的代码全写在Actv ...

  2. 如何用 Swift 语言构建一个自定控件

    (via:破船之家,原文:How To Make a Custom Control in Swift)   用户界面控件是所有应用程序重要的组成部分之一.它们以图形组件的方式呈现给用户,用户可以通过它 ...

  3. 注意Android里TextView控件的一个小坑,用android:theme来设置样式时动态载入的layout会丢失该样式

    注意Android里TextView控件的一个小坑,用android:theme来设置样式时动态载入的layout会丢失该样式 这个坑,必须要注意呀, 比如在用ListView的时候,如果在List_ ...

  4. iOS开发UI篇—使用picker View控件完成一个简单的选餐应用

    iOS开发UI篇—使用picker View控件完成一个简单的选餐应用 一.实现效果 说明:点击随机按钮,能够自动选取,下方数据自动刷新. 二.实现思路 1.picker view的有默认高度为162 ...

  5. C++ 一个程序获取另一个程序Edit控件的内容

    //一个程序获取另一个程序Edit控件的内容 //根据指定程序的标题名获取改程序窗口的句柄 HWND hWnd=::FindWindow(NULL,"zhang001"); if( ...

  6. WinForm-利用Anchor和Dock属性缩放控件

    转自:http://www.cnblogs.com/tianzhiliang/articles/2144692.html 有一点让许多刚接触WinForms编程的开发者感到很棘手,就是在用户调整各种控 ...

  7. wpf RadioButton控件的一个bug,onpropertychanged后会修改旧属性的值

    测试代码下载:http://files.cnblogs.com/djangochina/RadioButtonBug.zip 从上面列表选择不同的行,再设置下面不同的radiobutton看看结果 b ...

  8. Qt 创建一个QtDesinger第三方控件

    1.需要创建一个合适的.pro文件 2.创建一个继承QDesignerCustomWidgetInterface的类,描述控件的一些属性. 函数 描述和返回值 name() 指定控件的名称 group ...

  9. 百度地图隐藏缩放控件比例尺Logo

    对于百度地图最新版V3.7.3,以前的隐藏控件方法失效,可用以下方法隐藏: 1.隐藏缩放控件: mMapView.showZoomControls(false); 2.隐藏比例尺: mMapView. ...

随机推荐

  1. linux perf: 为什么采样频率设置成99Hz而不是100Hz

    早晨在linuxer看到文章,感觉挺有意思,最早研究perf的时候接触过这些概念,乍一看倍感亲切. sudo perf record -F  99 -a -g --sleep 20 perf reco ...

  2. VMware 密匙

    11.0版本 1F04Z-6D111-7Z029-AV0Q4-3AEH8 亲测可用

  3. 《c程序设计语言》读书笔记-3.4-数字转字符串

    #include <io.h> #include <stdio.h> #include <string.h> #include <stdlib.h> # ...

  4. RHEL退出RHN

    清除原有数据 rm -rf /etc/sysconfig/rhn/rhn_systemidrm -rf /var/cache/yum/*yum clean all 加载刷新源 yum repolist ...

  5. 【IDEA】IDEA断点调试与清除断点

    有时候我们必须启动debug模式来进行调试,在IDEA中断点调试与Eclipse大致相同: 1.以debug模式启动服务器: 2.在需要打断点的那一行前面点击一下标记上红点则是有断点,再次点击可以清除 ...

  6. 【IDEA】IDEA中部署的项目添加Tomcat自带的一些项目

    在IDEA部署项目的时候发现没有tomcat自带的一些项目,有时候我们需要tomcat自带的项目查看一些配置的信息,经过查阅资料后做记录如下: 1.在Eclipse中点击Run ->Edit C ...

  7. bind 简单配置dns

    一. 安装apt-get install bind9 apt-get install bind9-host dnsutils apt-get install bind9-doc 二.修改本机配置我们要 ...

  8. app:compileDebugNdk,NDK

    Error:Execution failed for task ':app:compileDebugNdk'. > Error: Your project contains C++ files ...

  9. 将本地访问ip映射成域名

    通过修改以下地址 C:\WINDOWS\system32\drivers\etc\hosts 加进你自己的如: 192.168.1.101  www.helloworld.com 配置nginx代理u ...

  10. Linux c 目录操作函数scandir

    头文件#include <dirent.h>  函数定义:int scandir(const char *dir,struct dirent **namelist,int (*filter ...