Android音视频任务列表之(一)——在 Android 平台绘制一张图片,使用至少 3 种不同的 API,ImageView,SurfaceView,自定义 View

2023-10-26

一.使用ImageView绘制图片

1.在布局文件中添加ImageView控件

   <ImageView
        android:id="@+id/imageView"
        android:layout_width="120dp"
        android:layout_height="120dp"
       />

2.在Activity中找到控件并设置图片

 imageView= findViewById(R.id.imageView);
 imageView.setImageResource(R.drawable.girl);

二.使用SurfaceView绘制图片

1.在布局文件中添加CustomSurfaceView控件

   <com.ry.question1.CustomSurfaceView
        android:layout_width="120dp"
        android:layout_height="120dp"
         />

2.主要代码

private void initView() {
        mHolder=getHolder();
        mHolder.addCallback(this);
        setFocusable(true);
        setFocusableInTouchMode(true);
        this.setKeepScreenOn(true);
    }
    public CustomSurfaceView(Context context, AttributeSet attrs) {
        super(context, attrs);
        initView();
    }

    @Override
    public void surfaceCreated(@NonNull SurfaceHolder holder) {
        Paint paint = new Paint();
        paint.setAntiAlias(true);
        paint.setStyle(Paint.Style.STROKE);
        BitmapDrawable bd = (BitmapDrawable) getResources().getDrawable(R.drawable.girl);
        Bitmap   bitmap = bd.getBitmap();
        Canvas canvas = holder.lockCanvas();  // 先锁定当前surfaceView的画布
        canvas.drawBitmap(bitmap, 0, 0, paint); //执行绘制操作
        holder.unlockCanvasAndPost(canvas); // 解除锁定并显示在界面上
    }

三.使用自定义view绘制图片

1.布局

  <com.ry.question1.CustomView
        android:layout_width="120dp"
        android:layout_height="120dp"/>

2.主要代码

 @Override
    protected void onDraw(Canvas canvas) {
        Paint paint = new Paint();
        paint.setAntiAlias(true);
        paint.setStyle(Paint.Style.STROKE);
        BitmapDrawable bd = (BitmapDrawable) getResources().getDrawable(R.drawable.girl);
        Bitmap bitmap = bd.getBitmap();
        // 方式二:
        // Bitmap bitmap = BitmapFactory.decodeFile("/storage/emulated/0/wuqian.jpg");  // 获取bitmap

        canvas.drawBitmap(bitmap, 0, 0, paint); //执行绘制操作
        super.onDraw(canvas);
    }

四.显示效果

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android音视频任务列表之(一)——在 Android 平台绘制一张图片,使用至少 3 种不同的 API,ImageView,SurfaceView,自定义 View 的相关文章

随机推荐

  • hexo博客配置

    title hexo博客配置 cover img 2 jpg categories HEXO博客 1 网站图标更换 themes hexo theme Annie layout partial head ejs 我中间这个hexo them
  • NUC980开源项目8-官方Uboot编译

    上面是我的微信和QQ群 欢迎新朋友的加入 项目码云地址 国内下载速度快 https gitee com jun626 nuc980 open source project 项目github地址 https github com Jun117
  • linux XFRM整体框架简单分析

    author jonathan 本文档的CopyRight归jonathan所有 可自由转载 转载时请保持文档的完整性 Linux 的 XFRM框架多简单阿 6年前整理过 到现在还记得基本原理 说明xfrm设计的是多么简单明了 不过网上都是
  • Selenium被禁止的解决方法

    selenium被禁止的解决方法 遇到问题 selenium做爬虫能解决很多反爬问题 但是selenium也有很多特征可以被识别 比如用selenium驱动浏览器后window navigator webdriver值是true 而正常运行
  • python print format_Python format()格式化输出方法详解

    前面章节介绍了如何使用 操作符对各种类型的数据进行格式化输出 这是早期 Python 提供的方法 自 Python 2 6 版本开始 字符串类型 str 提供了 format 方法对字符串进行格式化 本节就来学习此方法 format 方法的
  • canvas详解03-绘制图像和视频

    canvas 更有意思的一项特性就是图像操作能力 可以用于动态的图像合成或者作为图形的背景 以及游戏界面 Sprites 等等 浏览器支持的任意格式的外部图片都可以使用 比如 PNG GIF 或者 JPEG 你甚至可以将同一个页面中其他 c
  • Tensorflow和anaconda的历史版本镜像,清华源镜像下载地址

    清华源镜像下载地址 https pypi tuna tsinghua edu cn simple tensorflow gpu tensorflow和cuda版本对应关系见该博客https blog csdn net qq 27825451
  • HCIA综合实验(以华为eNSP为例)

    如有错误 敬请谅解 此文章仅为本人学习笔记 仅供参考 如有冒犯 请联系作者删除 基础知识简介 网络技能树技能树https edu csdn net skill network utm source AI act network catego
  • android 功能模块之通讯模块

    Android通讯录开发之实现全选 反选功能 2014年1月15日 实现全选 反选不是什么难的事情 就只是用另外一个数据结构来存储被选中的状态 通过刷新列表来更新列表的显示状态 下面是实现效果 定义一个散列表来存储选中状态 java vie
  • 电机PID调试

    电机PID调试 电机PID调试 一 直流电机原理与TB6612 1 1 电机原理 1 2 减速器作用 1 3 电机实物接线图 1 4 电机控制芯片 二 编码器使用以及测速原理 2 1 编码器原理 2 1 编码器接线 2 1 编码器软件四倍
  • Matlab——m_map指南(2)

    3 海岸线和深度测量 3 1 1 海岸线选项 m coast line optional line arguments m coast line optional line arguments m map 的海岸线数据可以使用m coast
  • 锦囊2—修改已经存在了的ES数据结构

    修改已经存在了的ES数据结构 问题背景 由于ElasticSearch没有像mysql一样可以直接字段数据类型的方法 因此需要通过创建中间索引 data index 1 备份数据到中间索引 data index 1 然后删除原索引 data
  • 华为OD题目: 快速开租建站

    华为OD题目 快速开租建站 知识点 BFSQ搜索拓扑排序 时间限制 1s 空间限制 256MB 限定语言 不限 题目描述 当前IT部门支撑了子公司颗粒化业务 该部门需要实现为子公司快速开租建站的能力 建站是指在一个全新的环境部署一套IT服务
  • An orientation marker must be set prior to enabling/disabling widget

    Set up the QVTK window viewer reset new pcl visualization PCLVisualizer viewer false viewer gt addCoordinateSystem 1000
  • 梦幻模拟战更新服务器正在维护,梦幻模拟战1月24日更新公告 新活动揭示的哲学开放[多图]...

    梦幻模拟战在1月24日对游戏进行了更新 开放了最新的活动揭示的哲学 并有丰厚的奖励等着玩家们获取 接下来安族小编就带大家来看看具体更新公告 服务器将在1月24日6 00进行更新维护 预计维护时长约90分钟 维护期间指挥官无法登陆服务器 给您
  • 【华为OD统一考试B卷

    文章目录 题目描述 输入描述 输出描述 用例 C java javascript python 题目描述 对一个数据a进行分类 分类方法为 此数据a 四个字节大小 的四个字节相加对一个给定的值b 取模 如果得到的结果小于一个给定的值c 则数
  • HDOJ 1827 - Summer Holiday 简单的tarjan求强联通分量+缩点

    题意 听说lcy帮大家预定了新马泰7日游 Wiskey真是高兴的夜不能寐啊 他想着得快点把这消息告诉大家 虽然他手上有所有人的联系方式 但是一个一个联系过去实在太耗时间和电话费了 他知道其他人也有一些别人的联系方式 这样他可以通知其他人 再
  • MMOCR之DBNET文字检测

    MMCV系列之MMOCR 注 大家觉得博客好的话 别忘了点赞收藏呀 本人每周都会更新关于人工智能和大数据相关的内容 内容多为原创 Python Java Scala SQL 代码 CV NLP 推荐系统等 Spark Flink Kafka
  • R语言入门(安装使用基础操作详细说明)合集

    R使用基础知识 Rstudio使用 R包管理 操作数据 空间数据处理 在jupyternotebook中使用R语言 参考博客 Rstudio使用 ctrl enter运行当前行代码 help中查找说明文档 查看前后绘图图片 工作目录设定及管
  • Android音视频任务列表之(一)——在 Android 平台绘制一张图片,使用至少 3 种不同的 API,ImageView,SurfaceView,自定义 View

    一 使用ImageView绘制图片 1 在布局文件中添加ImageView控件