借助ClipDrawable实现,每隔一段时间截取一块区域,截取的区域不断扩大。

/res/drawable/expanding_picture.xml:

<?xml version="1.0" encoding="utf-8"?>
<clip xmlns:android="http://schemas.android.com/apk/res/android"android:drawable="@drawable/bg_kou_bei"android:clipOrientation="horizontal"android:gravity="">
</clip>

java文件:

package com.example.drawablesource;import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;import android.graphics.drawable.ClipDrawable;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.widget.ImageView;import java.util.Timer;
import java.util.TimerTask;public class ExpandingPictureActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_expanding_picture);ImageView imageView = findViewById(R.id.img_expanding);final ClipDrawable clipDrawable = (ClipDrawable) imageView.getDrawable();class MyHandler extends Handler{@Overridepublic void handleMessage(@NonNull Message msg) {if(msg.what == 0x1111){clipDrawable.setLevel(clipDrawable.getLevel()+200);}}}final MyHandler handler = new MyHandler();final Timer timer = new Timer();timer.schedule(new TimerTask() {@Overridepublic void run() {Message message = new Message();message.what = 0x1111;handler.sendMessage(message);if (clipDrawable.getLevel() >=10000){timer.cancel();}}}, 0, 300);}
}

布局文件:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".ExpandingPictureActivity"><ImageViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:id="@+id/img_expanding"app:layout_constraintStart_toStartOf="parent"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintTop_toTopOf="parent"app:layout_constraintBottom_toBottomOf="parent"android:src="@drawable/expanding_picture"/></androidx.constraintlayout.widget.ConstraintLayout>

实例:徐徐展开的图片相关推荐

  1. Android实例]------获取sd卡图片显示出来

    [Android实例] 获取sd卡图片显示出来 ON 六 02 2012 IN ANDROID代码仓库, ANDROID项目代码 BY ANDROID智能手机 | 评论 package com.fil ...

  2. HP一年升两年保修实例!(附图片)

    HP一年升两年保修实例!(附图片) 转载于:https://blog.51cto.com/piaolang/87309

  3. 【机器学习】K-Means(非监督学习)学习及实例使用其将图片压缩

    非监督学习之k-means K-means通常被称为劳埃德算法,这在数据聚类中是最经典的,也是相对容易理解的模型.算法执行的过程分为4个阶段. 1.从数据中选择k个对象作为初始聚类中心; 2.计算每个 ...

  4. PHP - 应用实例 - nfo2image - NFO转图片

    PHP - 应用实例 - nfo2image - NFO转图片 [源代码] <?php function output_nfo_image ($filename, $size) {     $f ...

  5. Java TSC 打印机调用java 实例 打印标签(文字、图片)

    本文 打印机型号:TSC TTP-243E Pro   选配 USB    分辨率200 DPI,1 点=1/8 mm (300 DPI,1点 =1/12 mm) 一. 打印机安装 1.安装说明: 官 ...

  6. 满天星_Java实例_源码+图片素材

    运行效果: 源代码: package star;import java.awt.Color; import java.awt.Font; import java.awt.Graphics; impor ...

  7. python3 爬虫神器pyquery的使用实例之爬网站图片

    PyQuery 可让你用 jQuery 的语法来对 xml 进行操作,这和 jQuery 十分类似.如果利用 lxml,pyquery 对 xml 和 html 的处理将更快. 如果对 jQuery  ...

  8. C#-数字图像处理算法-典型实例及标准测试图片

    资料内有pdf和源码!下载积分小贵!为了方便大家在此分享!测试的图片也是网上的开源资料! 入门数字图像处理,可以看看这个资料,使用的C#语言,方便快捷简单易学! 坚持开源,互相学习! 链接:https ...

  9. 爬虫实例:从百度图片下载壁纸

    一.数据分析 百度图片壁纸网址:http://image.baidu.com/channel/wallpaper 1.打开网址,点击国家地理,打开Chrom浏览器的开发者工具,选中图片图片元素. 获得 ...

最新文章

  1. Axure RP pro 6.5 密钥
  2. 初识源代码管理工具——GitHab
  3. smartforms句柄与以簇的方式存储数据。
  4. LeetCode Algorithm 9. 回文数
  5. Learn X in Y minutes
  6. 微服务之springCloud-docker-feign配置(五)
  7. 【转】四阶魔方还原1
  8. anaconda老版本下载的方法
  9. DNS服务器构建(一)-—构建域名缓存服务器
  10. 使用Windows迁移工具迁移2003至2012R2 二、IP迁移
  11. cuda 排序算法笔记
  12. 视觉目标跟踪大牛主页
  13. HTML5 页面制作工具
  14. python使用opencv模块画简单的图形
  15. 微信小程序开发之——星星评分等级显示
  16. 【第25题】一球从 100 米高度自由落下,每次落地后反跳回原高度的一半
  17. 一种非Timeline的feeds流架构
  18. 【电商】电商后台---FMS财务管理系统
  19. 计算机主板后的底座,更换损坏的CPU底座的方法
  20. c语言编写的商品管理程序,C语言超市商品管理系统.docx

热门文章

  1. think php condition,if condition多个值_thinkphp if标签的condition用法
  2. 建筑建材行业供应商管理系统强化企业供应商采购合规性,推进信息化建设
  3. CTF流量分析常见题型(二)-USB流量
  4. MySQL 提示字段没有默认值 doesn’t have a default value 解决方法
  5. python爬取微信公众号文章(携带cookie)
  6. python not常见用法
  7. python中递归函数写法_详解python中递归函数
  8. 华为mate40pro和小米10pro哪个好-华为mate40pro和小米10pro对比-华为mate40pro和小米10pro像素 那个好
  9. 戴尔台式机安装ubuntu16
  10. Winform打开目录或文件