---------------------------------------------------MainActivity---------------------------------------------------
package com.example.example3_5; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Matrix; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.DisplayMetrics; import android.view.View; import android.widget.Button; import android.widget.ImageView; public class MainActivity extends AppCompatActivity { ImageView imageView; Bitmap bitmap; //声明bitmap的引用 int screenWidth; //屏幕宽度 int screenHeight; //屏幕高度 float scaleWidth; //宽度比例 float scaleHeight; //高度比例 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); bitmap= BitmapFactory.decodeResource(getResources(),R.mipmap.image); //创建bitmap对象 DisplayMetrics displayMetrics=new DisplayMetrics(); //创建矩阵 getWindowManager().getDefaultDisplay().getMetrics(displayMetrics); screenWidth=displayMetrics.widthPixels; //得到屏幕宽度 screenHeight=displayMetrics.heightPixels-80; //得到屏幕高度 imageView=(ImageView)findViewById(R.id.image_view); Button button1=(Button)findViewById(R.id.button1); Button button2=(Button)findViewById(R.id.button2); Button button3=(Button)findViewById(R.id.button3); Button button4=(Button)findViewById(R.id.button4); imageView.setImageBitmap(bitmap); //为ImageView设置图片 imageView.setAlpha(100); //设置图片透明度 imageView.setOnClickListener(new View.OnClickListener() { //设置监听,点击改变图片透明度 @Override public void onClick(View v) { imageView.setImageResource(R.mipmap.image); //设置图片亦起到还原图片作用 imageView.setAlpha(255); //改变图片透明度 } }); button1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { imageView.setImageBitmap(ScaleToFit(bitmap,0.8f)); bitmap= ScaleToFit(bitmap,0.8f); //缩小图片为原来的0.8倍 } }); button2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { imageView.setImageBitmap(ScaleToFit(bitmap,1.2f)); bitmap=ScaleToFit(bitmap,1.2f); //放大图片为原来的1.2倍 } }); button3.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { imageView.setImageBitmap(rotateToFit(bitmap,-90f)); //左转 bitmap=rotateToFit(bitmap,-90f); //调用rotateToFit() } }); button4.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { imageView.setImageBitmap(rotateToFit(bitmap,90f)); //右转 bitmap=rotateToFit(bitmap,90f); } }); } public static Bitmap ScaleToFit(Bitmap bitmap1,float scale){ int width=bitmap1.getWidth(); int height=bitmap1.getHeight(); Matrix matrix=new Matrix(); //创建矩阵 matrix.postScale(scale,scale); //图片等比例缩小 Bitmap bitmapresult=Bitmap.createBitmap(bitmap1,0,0,width,height,matrix,true); //声明位图 return bitmapresult; //返回图片 } public static Bitmap rotateToFit(Bitmap bitmap2,float degrees){ int width=bitmap2.getWidth(); int height=bitmap2.getHeight(); Matrix matrix=new Matrix(); matrix.postRotate(degrees); //矩阵旋转degrees角度 Bitmap bitmapresult1=Bitmap.createBitmap(bitmap2,0,0,width,height,matrix,true); //声明位图 return bitmapresult1; } }
------------------------------------------XML文件------------------------------------------------------
<?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.example3_5.MainActivity"> <LinearLayout android:id="@+id/linear_layout2" android:orientation="horizontal" android:layout_width="wrap_content" android:layout_height="wrap_content"> <ImageView android:id="@+id/image_view" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout> <LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:id="@+id/linear_layout" android:orientation="horizontal" android:gravity="left|bottom"> <Button android:id="@+id/button1" android:text="缩小" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <Button android:id="@+id/button2" android:text="放大" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <Button android:id="@+id/button3" android:text="左转" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <Button android:id="@+id/button4" android:text="右转" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout> </FrameLayout>
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
XML文件中采用帧布局,嵌套LinearLayout
MainActivity中imageVeiw是ImageView的对象
其中ImageView.setAlpha();设置图片的透明度,改变图片的透明度
ImageView.setImageBitmap();改变图片的大小,实现缩放功能, 在Bitmap创建的函数中通过矩阵Matrix的对象matrix.postScale();获取缩放比例实现对图片的缩放
imageView..setImageBitmap();实现图片的旋转,在Bitmap创建的函数中通过矩阵Matrix的对象matrix.postRotate();获取旋转的角度实现图片的旋转