Android -- ImageView(控制图片的大小以及旋转的角度)

1. 

2.   实现代码

package com.example.myimageview3;

import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.Matrix;
import android.graphics.drawable.BitmapDrawable;
import android.os.Bundle;
import android.util.DisplayMetrics;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.SeekBar;
import android.widget.SeekBar.OnSeekBarChangeListener;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends Activity implements OnSeekBarChangeListener {

	private int minWidth = 80;

	/* ImageView 图片 */
	private ImageView imageView;

	/* 显示图片的信息以及角度 */
	private TextView textView1 , textView2;

	/* 大小和角度拖动条 */
	private SeekBar seekBar1 , seekBar2;

	/* 角度变化的矩阵 */
	private Matrix matrix = new Matrix ( );

	@ Override
	protected void onCreate ( Bundle savedInstanceState ) {

		super.onCreate ( savedInstanceState );
		setContentView ( R.layout.activity_main );

		//  找到组件
		imageView = ( ImageView ) this.findViewById ( R.id.imageview1 );
		textView1 = ( TextView ) this.findViewById ( R.id.textview1 );
		textView2 = ( TextView ) this.findViewById ( R.id.textview2 );
		seekBar1 = ( SeekBar ) this.findViewById ( R.id.seekbar1 );
		seekBar2 = ( SeekBar ) this.findViewById ( R.id.seekbar2 );

		//  设置监听事件
		seekBar1.setOnSeekBarChangeListener ( this );
		seekBar2.setOnSeekBarChangeListener ( this );

		// 获取当前手机显示的通用信息,并将当前窗口的一些信息放在DisplayMetrics 中
		DisplayMetrics dm = new DisplayMetrics ( );
		getWindowManager ( ).getDefaultDisplay ( )
		                              .getMetrics ( dm );

		//  设置seekBar1的最大值为获取屏幕的像素-80
		seekBar1.setMax ( dm.widthPixels - minWidth );
	}

	/* Seekbar 监听事件 */
	@ Override
	public void onProgressChanged ( SeekBar seekBar , int progress ,
	                              boolean fromUser ) {

		//  SeekBar1 处理事件
		// TODO Auto-generated method stub
		if (seekBar.getId ( ) == R.id.seekbar1) {

			//  图片新的宽度
			int newWidth = progress + minWidth;
			// 图片新的高度为宽度的3/4
			int newHeight = ( int ) ( newWidth * 3 / 4 );//按照原图片进行缩放的功能
			// 设置图片的高度和宽度
			imageView.setLayoutParams ( new LinearLayout.LayoutParams (
			                              newWidth ,
			                              newHeight ) );
			// 设置TextView1显示的信息
			textView1.setText ( "图像宽度"
			                              + newWidth
			                              + "图像高度"
			                              + newHeight );
		}

		//  SeekBar2 处理事件
		else if (seekBar.getId ( ) == R.id.seekbar2) {

			Bitmap bitmap = ( ( BitmapDrawable ) ( getResources ( )
			                              .getDrawable ( R.drawable.dog ) ) )
			                              .getBitmap ( );

			// 设置图片旋转的角度
			matrix.setRotate ( progress );
			bitmap = Bitmap.createBitmap (
			                              bitmap ,
			                              0 ,
			                              0 ,
			                              bitmap.getWidth ( ) ,
			                              bitmap.getHeight ( ) ,
			                              matrix ,
			                              true );
			imageView.setImageBitmap ( bitmap );
			textView2.setText ( progress + "度" );
		}
	}

	@ Override
	public void onStartTrackingTouch ( SeekBar seekBar ) {

		// TODO Auto-generated method stub

		Toast.makeText ( MainActivity.this , "开始拖动" ,
		                              Toast.LENGTH_SHORT )
		                              .show ( );
	}

	@ Override
	public void onStopTrackingTouch ( SeekBar seekBar ) {

		// TODO Auto-generated method stub
		Toast.makeText ( MainActivity.this , "停止拖动" ,
		                              Toast.LENGTH_SHORT )
		                              .show ( );
	}

}
时间: 2024-08-07 03:34:22

Android -- ImageView(控制图片的大小以及旋转的角度)的相关文章

S实现控制图片显示大小的方法【图片等比例缩放功能】

S实现控制图片显示大小的方法[图片等比例缩放功能] [需求]:读取磁盘中的图片,展示在弹出框中,等比例缩放图片,使图片显示完全. (读取磁盘中的图片展示在前台,请参照我的另一篇文章:) [开发]: 调用说明: 直接调用js函数即可. 我测试是一个image 标签中直接调用,如下: <div> <img id="showImageimg"  src="/sirdifoa/applycorrection/getImage.do?imgName=2017001.j

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_hei

解决android:background背景图片被拉伸问题

ImageView中XML属性src和background的区别: background会根据ImageView组件给定的长宽进行拉伸,而src就存放的是原图的大小,不会进行拉伸.src是图片内容(前景),bg是背景,可以同时使用. 此外:scaleType只对src起作用:bg可设置透明度,比如在ImageButton中就可以用android:scaleType控制图片的缩放方式 如上所述,background设置的图片会跟View组件给定的长宽比例进行拉伸.举个例子, 36x36 px的图标

android:background背景图片被拉伸问题

ImageView中XML属性src和background的区别: background会根据ImageView组件给定的长宽进行拉伸,而src就存放的是原图的大小,不会进行拉伸.src是图片内容(前景),bg是背景,可以同时使用. 此外:scaleType只对src起作用:bg可设置透明度,比如在ImageButton中就可以用android:scaleType控制图片的缩放方式 如上所述,background设置的图片会跟View组件给定的长宽比例进行拉伸.举个例子, 36x36 px的图标

关于Android应用中图片占用内存浅谈

从事过移动端应用开发的童鞋应该都清楚,内存是非常宝贵的资源.如果能很好的利用有限的内存,对应用性能的提升会有很大的帮助.在实际应用开发中图片内存占整个应用非常大的比重,我们只有了解图片是如何加载到内存中,才能更好的优化图片所占的内存. 那么对于图片在Android应用中的使用进行探讨一下. 图片所占内存大小=内存中图片高 * 内存中图片宽 * 每个像素所占字节数   1,那么图片的物理高宽和加载到内存中的高宽是否是一样的呢? 在应用中关于图片的加载一般分为两种情况,其加载到内存中的大小也是不一样

图片自适应大小

用jQuery和Css控制图片的大小 <script type="text/javascript">    $(document).ready(function() {        var imgWidth = $(window).width();         $("#InfoContent img").css("width", imgWidth);    });</script> 首先获取界面的宽度 然后将宽度追加

Android进度条控制图片旋转&#183;平移&#183;缩放&#183;倾斜

初来乍到 平时代码多写于某笔记软件上 现在在这里记录一些 从初学Android开始写起 可能有些地方实现得略小白 或者还不能熟练使用博客园的功能 但是希望能够对需要的人有帮助 不足之处请多指教 一般使用工具:android studio 那么 Here we go. have a good time. 用进度条实现控制图片旋转·平移·缩放·倾斜 效果: 1 public class MainActivity extends AppCompatActivity implements SeekBar

Android imageView图片按比例缩放

android:scaleType可控制图片的缩放方式,示例代码如下: [html] view plaincopyprint? <ImageView android:id="@+id/img" android:src="@drawable/logo" android:scaleType="centerInside" android:layout_width="60dip" android:layout_height=&q

设置图片大小和旋转

xml <ImageView android:id="@+id/img" android:layout_width="match_parent" android:layout_height="wrap_content" android:src="@drawable/left" android:scaleType="fitCenter" /> <TextView android:layout