Android中ImageView的旋转与缩放

Android ImageView视图的七种图片缩放类型 前言ImageView默认图片居中显示,默认图片的缩放类型为scaleType属性为fitCenter。一、scaleType属性为fitCenter,默认就是这个属性。七、scaleType属性为centerInside。六、scaleType属性为centerCrop。三、scaleType属性为fitStart。四、scaleType属性为fitEnd。五、scaleType属性为center。二、scaleType属性为fitXY。...... 阅读详情

说明在代码中已经注释

XML代码

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:layout_width="match_parent"
              android:layout_height="wrap_content"
              android:orientation="vertical">

    <ImageView
        android:id="@+id/iv_pic"
        android:layout_width="match_parent"
        android:layout_height="200dip"
        android:background="@android:color/black"
        android:scaleType="fitCenter"
        android:src="@drawable/bg"/>
    <!-- 设置图片的显示方式:把图片按比例扩大/缩小到view的宽度,居中显示 -->
    <LinearLayout
        android:layout_marginTop="310dp"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">

        <SeekBar
            android:id="@+id/sb_one"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:progress="100"/>

        <TextView
            android:id="@+id/text1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout_marginTop="15dp"
            android:text="拖动来缩放图片"
            android:textColor="@android:color/black"
            android:textSize="20dp"/>

        <SeekBar
            android:id="@+id/sb_two"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="15dp"
            android:progress="50"/>

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout_marginTop="15dp"
            android:text="拖动来旋转图片"
            android:textColor="@android:color/black"
            android:textSize="20dp"/>
    </LinearLayout>
</RelativeLayout>

Activity代码

package com.zjs.imagerotate;

import android.graphics.Bitmap;
import android.graphics.Matrix;
import android.graphics.drawable.BitmapDrawable;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.DisplayMetrics;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.SeekBar;

public class MainActivity extends AppCompatActivity implements SeekBar.OnSeekBarChangeListener {
    private ImageView iv_pic;
    private SeekBar sb_one;
    private SeekBar sb_two;
    private Matrix matrix;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        setTitle("imageView实现图片缩放和旋转");
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        iv_pic = (ImageView) findViewById(R.id.iv_pic);
        sb_one = (SeekBar) findViewById(R.id.sb_one);
        sb_two = (SeekBar) findViewById(R.id.sb_two);
        //设置SeekBar的progress值改变监听事件
        sb_one.setOnSeekBarChangeListener(this);
        sb_two.setOnSeekBarChangeListener(this);
        matrix = new Matrix();
        //    1)设置图片放大缩小效果 //
        //    第一步:将<ImageView>标签中的android:scaleType设置为"fitCenter" //
        //    第二步:获取屏幕的宽度 //
        //    第三步:设置seekBar的最大progree值为屏幕宽度 //
        //    第四步:设置imageview的布局参数,也就是宽和高,也就是画布的宽高
        // 设置图片放大缩小效果
        // 第一步:获取屏幕的宽度
        DisplayMetrics dm = new DisplayMetrics();
        getWindowManager().getDefaultDisplay().getMetrics(dm);
        // 第二步:设置seekBar的最大progree值为屏幕宽度
        sb_one.setMax(dm.widthPixels);
    }

    @Override
    public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
        // TODO Auto-generated method stub
        switch (seekBar.getId()) {
            case R.id.sb_one:
                // 放大或缩小
                int width = progress;
                int height = progress * 3 / 4;
                // 第三步:设置imageview的布局参数,也就是宽和高,也就是画布的宽高
                iv_pic.setLayoutParams(new RelativeLayout.LayoutParams(width, height));
                break;
            case R.id.sb_two:
                // 旋转
                // 设置旋转度数
                // 设置图片旋转方法
                // 第一步:给matrix设置角度,用于新的bitmap
                matrix.setRotate((int) (progress * 3.60));
                // 第二步:获取bitmap资源
                BitmapDrawable bitmapDrawable = (BitmapDrawable) (getResources().getDrawable(R.drawable.bg));
                Bitmap bitmap = bitmapDrawable.getBitmap();
                // 第三步:重建bitmap用于显示
                Bitmap newBitmap = bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(), bitmap.getHeight(), matrix, false);
                // 第四步:给imageview设置新的bitmap
                iv_pic.setImageBitmap(newBitmap);
                break;
            default:
                break;
        }
    }

    @Override
    public void onStartTrackingTouch(SeekBar seekBar) {
//        TODO Auto -generated method stub
    }

    @Override
    public void onStopTrackingTouch(SeekBar seekBar) {
//        TODO Auto -generated method stub
    }
}

效果图

在这里插入图片描述

实战指南:CentOS 7下VOS3000 8.0从零部署到授权激活全流程 本文提供了一份详尽的CentOS 7系统下部署VOS3000 8.0的实战指南。从环境准备、使用FileZilla上传安装包、执行自动化安装脚本,到获取软件码、利用注册机生成授权文件并激活,手把手带领用户完成从零部署到投入商用的全流程,确保系统稳定运行。 阅读详情

相关推荐

deap数据集的情绪检测代码环境搭建与实现

deap数据数据集很大

f的博客 4157

Android系统ImageView图像显示控件ScaleType属性的八种缩放规则

Android系统ImageView图像显示控件ScaleType属性的八种缩放规则

bluefire1126的博客 1211

告别“盲开”:手把手教你用MCU内置比较器搞定BLDC无感方波启动(附代码片段)

本文详细介绍了如何利用MCU内置比较器实现BLDC无感方波启动,解决传统无传感器控制中的'盲开'问题。通过虚拟中性点电路设计和三段式启动流程,结合反电动势检测和过零检测技术,提供了一套经济高效的解决方案,并附有可直接移植的代码片段,助力工程师快速实现可靠的无感控制。

weixin_33694172的博客 507

一起Talk Android吧(第五百四十二回:ImageView的缩放)

本章回中主要介绍了如何对ImageView显示的图片进行缩放,介绍了实现缩放的方法,并且通过文字结合代码的方式进行了介绍。

talk_8的专栏 861

23. STM32F103C8T6 ADC采集光敏电阻传感器模块光照强度实战

本文详细介绍了如何使用STM32F103C8T6的ADC模块采集光敏电阻传感器的光照强度。通过硬件接线、核心原理讲解、四步代码配置(GPIO、ADC模式、使能校准、数据滤波)以及串口验证,手把手指导完成从模拟信号到数字值的完整实战流程,并重点提示了ADC时钟分频等关键配置要点。

weixin_42300144的博客 223

ADS仿真设计平行定向耦合器学习笔记

ADS仿真设计平行定向耦合器

qq_36521926的博客 1万+

android imageView 安卓图片控件的属性( scaleType缩放类型)

imageView通常位于文件目录下,设置图源资源来源可以通过视图xml文件中的src。

技术应让更广泛的人群流入到实际产品开发中才是正统 784

[RK3399][Android7.1] 调试笔记 --- 编译GSL5680 touch提示错误

Platform: RK3399 OS: Android 7.1 Kernel: v4.4.83 现象: 之前在rk3288平台上使用过GSL5680的Touch,现在移植过来一直报如下错误: make[1]: `include/generated/vdso-offsets.h' is up to date. CHK include/generated/compi...

Kris Fei's blog 1056

Android ImageView图片旋转

imageview旋转的方式有两种: 1.在布局中进行旋转 <!-- ImageView中的属性--> android:rotation="90" 2.在Java代码中动态的设置 // 使旋转点在图片中心 image.setPivotX(image.getWidth()/2); image.setPivotY(image.getHeight()/2); // 旋转90度 image.setRotation(90); ...

weixin_42630638的博客 2154

Claude Desktop新功能:让非技术人士也能自主编程

摘要: Anthropic近日在Claude桌面应用中集成了Claude Code功能,显著降低了非技术用户的使用门槛。Claude Code作为代理式编程工具,支持多任务并行处理、Git隔离和可视化会话管理,无需命令行操作即可实现代码调试、重构等复杂任务。新增的“计划模式”通过先分析后执行的流程,确保安全性,使产品经理、数据分析师等非开发者也能参与技术工作。这一更新标志着AI技术正打破专业壁垒,让领域专家无需编码背景即可利用高级工具,推动技术民主化。

独立开发,substack顶级编辑 1542

android imageview旋转动画,Android UI之ImageView实现图片旋转和缩放

这一篇,给大家介绍一下ImageView控件的使用,ImageView主要是用来显示图片,可以对图片进行放大、缩小、旋转的功能。android:sacleType属性指定ImageVIew控件显示图片的方式,例如:center表示图像以不缩放的方式显示在ImageView控件的中心,如果设置为fitCenter,表示图像按照比例缩放至合适的位置,并在ImageView控件的中心。首先我们开发一个简...

weixin_33709522的博客 621

防护装备穿戴检查:基于YOLOv8与UI界面的深度学习应用

通过结合YOLOv8模型与UI界面,本系统实现了防护装备穿戴检查的自动化。该系统能够快速识别工作人员是否正确佩戴了所需的防护装备,帮助提高安全管理水平。未来,随着技术的发展,防护装备穿戴检查系统将在更多领域得到应用,如工业现场、建筑工地等,实现更加精确和高效的实时监控。

YOLO 355

Android打造能旋转能缩放的ImageView(Kotlin版)

目录引言效果图自定义view源码Activity源码支持我 引言 嗨,好久不见,大家还好么?这回我带来了最新的用kotlin打造的imageview,属于kotlin练手级别小制作,希望大家喜欢~~ 先看效果,然后看源码,关键部分已有注释。 采用的是3指缩放,2指旋转。 效果图 涉及知识点 安卓手势 矩阵 assets目录 安卓触摸事件处理 自定义view 一点点的数学运算 kotlin知识...

mafanwei的博客 1488

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

android 点击图片旋转90度,Android UI之ImageView实现图片旋转和缩放

这一篇,给大家介绍一下ImageView控件的使用,ImageView主要是用来显示图片,可以对图片进行放大、缩小、旋转的功能。android:sacleType属性指定ImageVIew控件显示图片的方式,例如:center表示图像以不缩放的方式显示在ImageView控件的中心,如果设置为fitCenter,表示图像按照比例缩放至合适的位置,并在ImageView控件的中心。首先我们开发一个简...

weixin_35657965的博客 2405

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

【Android 开发】:UI控件之 ImageView 实现图片旋转和缩放功能

1.  前言     在开发中实现对图像的缩放有很多方法,最简单的方法是改变ImageView控件的大小,我们只要将标签的android:scaleType的属性值设置为fitCenter,要是想实现图像的旋转可以使用android.graphics.Matirx类的setRotate来实现。 下面我们就来学习一下如何利用ImageView来实现图片的等比例缩放和旋转的功能。在学习之前

AHuier_Techblog :如果我不在写代码,你就 @me 1万+

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

安卓控件使用系列16:ImageView实现图片缩放和旋转

在安卓中使用ImageView控件对图片进行旋转和缩放操作是经常遇到的开发背景,下面我们来分享一下它的实现方法。 这个例子实现的是通过滑动滑杆来控制图片的缩放和旋转,并显示缩放的大小和旋转的角度。 整体思路:首先在布局文件中定义一个ImageView控件,用于设置图片,放置两个SeekBar控件用于表示缩放和旋转的状态,放置两个TextView控件用于显示缩放的大小和旋转的角度;在活动中实现O

luoshiwutai的博客 1142

java安卓开发改变图片大小_Android之UI学习篇六:ImageView实现图片旋转和缩放

这一篇,给大家介绍一下ImageView控件的使用,ImageView主要是用来显示图片,可以对图片进行放大、缩小、旋转的功能。android:sacleType属性指定ImageVIew控件显示图片的方式,例如:center表示图像以不缩放的方式显示在ImageView控件的中心,如果设置为fitCenter,表示图像按照比例缩放至合适的位置,并在ImageView控件的中心。首先我们开发一个简...

weixin_42500739的博客 645

android 图片旋转功能,Android_ImageView中实现图片缩放与旋转的功能

实现旋转的方法代码:Matrix matrix = new Matrix();//3*3矩阵,具体查看API文档Bitmap bitmap = ((BitmapDrawable)(getResources().getDrawable(R.drawable.dog))).getBitmap();//取出图片放在Bitmap位图中matrix.setRotate(progress);//实现翻转的方法...

weixin_39771614的博客 401

Android开发学习之ImageView手势拖拽、缩放、旋转

在Android应用中,图片随手势的拖拽、缩放、旋转在很多场景中都会用到,今天我们要做的就是在ImageView的基础上实现一个可以拖拽、缩放、转转的TouchView。 一、实现原理 OnTouch事件捕捉+Matrix矩阵变换 二、核心方法 拖拽:Matrix.postTranslate(DeltalX, DeltalY...

maozhuxigood 582

Android之UI学习篇六:ImageView实现图片旋转和缩放

这一篇,给大家介绍一下ImageView控件的使用,ImageView主要是用来显示图片,可以对图片进行放大、缩小、旋转的功能。 android:sacleType属性指定ImageVIew控件显示图片的方式,例如:center表示图像以不缩放的方式显示在ImageView控件的中心,如果设置为fitCenter,表示图像按照比例缩放至合适的位置,并在ImageView控件的中心。 首先我们开

WILLIAM-HUAN 个人技术博客 3万+

Android ImageView 缩放、拖动、旋转

直接上代码 package cn.weijian.sweeping_robot.widget; import android.content.Context; import android.graphics.Matrix; import android.graphics.PointF; import android.util.AttributeSet; import android.util.L...

7692

Android----imageView实现图片的旋转和缩放

import android.support.v7.app.ActionBarActivity; import android.util.DisplayMetrics; import android.annotation.SuppressLint; import android.graphics.Bitmap; import android.g

小欣儿的专栏 2217

Android 可平移,缩放,旋转的ImageView

public class TouchImageView extends ImageView {          private static final String TAG = TouchImageView.class.getSimpleName();     float x_down = 0;       float y_down = 0;       PointF start =

专注Android开发 2554

Android可平移缩放旋转的ImageView的实现

本文是在别人做的ImageView实现缩放,平移功能的基础上做了优化并加上了旋转功能. 一,缩放 缩放通过双击屏幕和双指移动实现. 1,双击缩放 通过GestureDetector获取双击事件mGestureDetector = new GestureDetector(context,new GestureDetector.SimpleOnGestureLis

BigBoySunshine的专栏 1698

Android自定义控件 支持移动、缩放、旋转功能的ImageView

今天写一篇关于自定义控件的文章,基于ImageView控件,给它加上移动、多点缩放、两指旋转的功能,先看下效果:布局中可以添加多个MatrixImage,位置可以自由移动,涉及到一些简单的三角函数知识,说下实现的思路:基于ImageView,因为要实现缩放、移动、旋转功能,将ImageView的scaleType设置为MATRIX模式获取图片的显示区域,得到上、下、左、右位置信息根据图片的显示区域,绘制四个边框,边框随着图片的区域变化而变化绘制每个角的控制点,根据控制点的位置,实现缩放功能。

YangLe 1454
上一篇: Android如何实现NoActionBar以及Theme.NoTitleBar.Fullscreen效果
下一篇: Android实现动画Dialog
JSON_ZJS
博客等级 码龄9年 30粉丝 159原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值