android ImageView 详解----按钮控制图片缩放(三)
2014-03-15 17:16
363 查看
prevision->/article/2469532.html
大家好,有几天没更新博客了,最近工作很忙,一直没挤出时间。利用周末,也不放松继续接上一篇博客。
说到图片缩放呢,大家可能对两点触碰缩放图片很感兴趣(的确也很复杂)。那么今天先练练手,做一个简单的,利用按钮来缩放图片。我会将两点触碰缩放图片放到下一篇博文中。(今天就掉一掉大家的胃口,呵呵)
接上一篇标号
(四)按钮缩放图片
首先,说一下基本原理。其实很简单,给四个全局变量一个图片是宽、高的当前值,另一个是宽高的缩放比例(这里大家可以定死比如宽高的十分之一)。再有,就是动态获取图片当前的宽高值了。这里不熟悉android的初学者可能有点困难,需要复写Activity的onWindowFocusChanged方法,在该方法中来获取图片的宽高值。
下面是具体实现代码大家可以参考:
最后是编译后的效果图:
大家好,有几天没更新博客了,最近工作很忙,一直没挤出时间。利用周末,也不放松继续接上一篇博客。
说到图片缩放呢,大家可能对两点触碰缩放图片很感兴趣(的确也很复杂)。那么今天先练练手,做一个简单的,利用按钮来缩放图片。我会将两点触碰缩放图片放到下一篇博文中。(今天就掉一掉大家的胃口,呵呵)
接上一篇标号
(四)按钮缩放图片
首先,说一下基本原理。其实很简单,给四个全局变量一个图片是宽、高的当前值,另一个是宽高的缩放比例(这里大家可以定死比如宽高的十分之一)。再有,就是动态获取图片当前的宽高值了。这里不熟悉android的初学者可能有点困难,需要复写Activity的onWindowFocusChanged方法,在该方法中来获取图片的宽高值。
/** * 获取view宽高值 */ @Override public void onWindowFocusChanged(boolean hasFocus) { super.onWindowFocusChanged(hasFocus); // 获取宽高值 imageWitch = iv.getWidth(); imageHeigh = iv.getHeight(); // 设置每次增减值 addWitch = imageWitch / 10; addHeigh = imageHeigh / 10; }最后呢就是通过设置LayoutParams来设置图片的宽高值。需要注意的是这里的LayoutParams是通过上层布局如LinearLayout,就要通过设置LinearLayout.LayoutParams的对象来设置图片宽高值了。
下面是具体实现代码大家可以参考:
package com.icedcap.imageviewtest3; import android.app.Activity; import android.os.Bundle; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.Toast; public class MainActivity extends Activity implements OnClickListener { private static final String TAG = "MainActivity"; private Button b1, b2; private ImageView iv; private static final int maxWidth = 450; private static final int maxHeigh = 500; int imageWitch; int imageHeigh; // 设置每次增减值 int addWitch; int addHeigh; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); init(); } private void init() { b1 = (Button) findViewById(R.id.button1); b2 = (Button) findViewById(R.id.button2); iv = (ImageView) findViewById(R.id.imageview); b1.setOnClickListener(this); b2.setOnClickListener(this); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } @Override public void onClick(View v) { // TODO Auto-generated method stub switch (v.getId()) { case R.id.button1:// + if (imageWitch >= maxWidth || imageHeigh >= maxHeigh) { Toast.makeText(this, "已经放大到了最大值", Toast.LENGTH_SHORT).show(); } else { imageWitch += addWitch; imageHeigh += addHeigh; iv.setLayoutParams(new LinearLayout.LayoutParams(imageWitch, imageHeigh)); } break; case R.id.button2:// - if (imageWitch <= 0 || imageHeigh <= 0) { Toast.makeText(this, "已经缩小到了最小值", Toast.LENGTH_SHORT).show(); } else { imageWitch -= addWitch; imageHeigh -= addHeigh; iv.setLayoutParams(new LinearLayout.LayoutParams(imageWitch, imageHeigh)); } break; } } /** * 获取view宽高值 */ @Override public void onWindowFocusChanged(boolean hasFocus) { super.onWindowFocusChanged(hasFocus); // 获取宽高值 imageWitch = iv.getWidth(); imageHeigh = iv.getHeight(); // 设置每次增减值 addWitch = imageWitch / 10; addHeigh = imageHeigh / 10; } }
最后是编译后的效果图:
相关文章推荐
- Android 自定义imageview实现图片缩放实例详解
- Android ImageView 图片等比缩放问题
- android 将图片内容解析成字节数组,将字节数组转换为ImageView可调用的Bitmap对象,图片缩放,把字节数组保存为一个文件,把Bitmap转Byte
- Android 详解实现TextView加载带图片标签的Html并按比例缩放
- Android imageView图片按比例缩放(转)
- android 解决按钮、imageView 背景图片拉伸变大的问题
- Android实现浮动按钮半遮盖ImageView中的图片
- Android通过OnTouchListener缩放、拖拽ImageView图片
- 【Android 开发】:UI控件之 ImageView 实现图片旋转和缩放功能
- Android ImageView 图片等比缩放问题
- Android imageView图片按比例缩放
- android学习记录(二)-----imageView实现图片的旋转和缩放
- Android实现 通过手势随意缩放、移动ImageView图片
- Android——图片视图(ImageView)、状态开关按钮(ToggleButton)、时钟、图片透明度、滚动和时间选择器
- Android图片旋转,缩放,位移,倾斜,对称完整示例(一)——imageView.setImageMatrix(matrix)和Matrix
- Android imageView图片按比例缩放
- Android imageView图片按比例缩放
- Android之实现手势缩放imageview中的图片
- Android:ImageView图片缩放、居中
- Android imageView图片按比例缩放