控件对图片的操作,改变透明度、大小、方向(学习笔记)

来源:互联网 发布:welsh算法 编辑:程序博客网 时间:2024/06/05 00:50

---------------------------------------------------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();获取旋转的角度实现图片的旋转

0 0
原创粉丝点击