控件对图片的操作,改变透明度、大小、方向(学习笔记)
来源:互联网 发布: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
- 控件对图片的操作,改变透明度、大小、方向(学习笔记)
- [JS] 改变控件的透明度
- winform改变图片的透明度
- Android开发学习笔记之改变对话框的透明度
- 随着手指滑动动态改变子控件位置、透明度、大小的实现方式
- 改变图片的大小
- java改变png图片的透明度
- 通过星级改变图片的透明度
- Android中改变一个图片的透明度
- Android改变图片透明度的方法
- java改变png图片的透明度
- 通过UISlider改变图片的透明度(Swift)
- 改变图片透明度
- SeekBar改变图片透明度
- c#改变图片透明度
- 改变图片透明度
- iOS开发中图片的一些处理操作(背景色,透明度,合成,大小)
- Android 位置,大小,旋转,透明度改变的补间动画
- tensorflow学习之常用函数总结:tensorflow官方例子中的诸如tf.reduce_mean()这类函数
- Android复习之数据存储-SharedPreferences
- Ubuntu14.04 gedit中文乱码问题
- C++中“重载“、“ 覆盖”、“隐藏”的区别分析
- 阿里云服务器之Tomcat环境搭建以及域名绑定
- 控件对图片的操作,改变透明度、大小、方向(学习笔记)
- HDU 5131 Song Jiang's rank list(2014亚洲区广州站现场赛)
- Codeforces Round #354 (Div. 2) D. Theseus and labyrinth(bfs)
- ubuntu14.04安装intel openCL
- Python中的赋值以及深复制和浅复制(深拷贝和浅拷贝)
- java 当中变量存储位置的区别
- 【static】---- 关键字在内存--图解
- 安卓开发——activity的一些初始化的工作,在oncreate中做还是onresume中做
- Kali Linux 秘籍 第五章 漏洞评估