PS:素材和整个文件我都会放在最后请耐心看完~

简单看下效果:

页面布局代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"android:background="@color/black"android:orientation="vertical"tools:context=".MainActivity"><ImageViewandroid:id="@+id/img_show"android:layout_width="400dp"android:layout_height="400dp"android:layout_gravity="center"android:layout_weight="1"android:src="@mipmap/dzmy" /><TextViewandroid:id="@+id/tc_time"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="000"android:layout_weight="1"android:layout_gravity="center_horizontal"android:textColor="@color/white"android:textSize="60sp" /></LinearLayout>

主要实现代码:

package com.example.muyu2;import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;import android.annotation.SuppressLint;
import android.media.MediaPlayer;
import android.media.SoundPool;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;public class MainActivity extends AppCompatActivity {private TextView touchTime;int i = 0;private ImageView imgShow;private Button bt;private Animation animation = null;private TextView mBtnmusic;private SoundPool soundPool;private int soundID;private MediaPlayer music;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);handler.sendEmptyMessage(0);touchTime = (TextView) findViewById(R.id.tc_time);intview();}private void intview() {imgShow = findViewById(R.id.img_show);animation = AnimationUtils.loadAnimation(this, R.anim.muyu);imgShow.startAnimation(animation);animation.setFillAfter(true);imgShow.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {intview();PlayMusic(R.raw.split);//第二种方式i++;
/*                MyThread1 mt = new MyThread1();Thread mt11 = new Thread(mt);mt11.start();*/}});}/*    private class MyThread1 implements Runnable {@Overridepublic void run() {}}*/@SuppressLint("NewApi")private void initSound() {soundPool = new SoundPool.Builder().build();soundID = soundPool.load(this, R.raw.split, 1);}private void PlayMusic(int MusicId) {music = MediaPlayer.create(this, MusicId);music.start();}private void playsound() {soundPool.play(soundID,0.1f,      //左耳道音量【0~1】0.5f,      //右耳道音量【0~1】0,         //播放优先级【0表示最低优先级】0,         //循环模式【0表示循环一次,-1表示一直循环,其他表示数字+1表示当前数字对应的循环次数】1          //播放速度【1是正常,范围从0~2】);}Handler handler = new Handler() {@Overridepublic void handleMessage(@NonNull Message msg) {super.handleMessage(msg);touchTime.setText(i + "");if (i != i - 1) {handler.sendEmptyMessageDelayed(0, 500);}}};
}

这里需要注意的一个点就是修改界面UI的线程得写在主线程上

这里我们需要自己创建动画文件夹和音频文件夹来存放素材:

这里我们选择anim文件夹存放动画xml,raw文件夹存放音频;

muyu动画代码:

<scale xmlns:android="http://schemas.android.com/apk/res/android"android:duration="500"android:fillAfter="true"android:fromXScale="1.0"android:fromYScale="1.0"android:interpolator="@android:anim/accelerate_interpolator"android:pivotX="50%"android:pivotY="50%"android:toXScale="0.95"android:toYScale="0.95" />

把前面的代码copy完差不多就能实现功能的,素材下面自取,免费,觉得有帮助麻烦点个赞,谢谢!

迅雷云盘:链接:https://pan.xunlei.com/s/VNF9LOFpmGf6vsfpZR5TEQTQA1?pwd=a2st#
提取码:a2st

百度云盘:链接: https://pan.baidu.com/s/1d407_ZF6GldlIJ1vecJmIA?pwd=xyxf 提取码: xyxf

CSDN:Android,电子木鱼,1024传-Android文档类资源-CSDN下载免费,可以的话帮我点赞,谢谢更多下载资源、学习资料请访问CSDN下载频道.https://download.csdn.net/download/qq_55985667/86815273

Android--简单电子木鱼开发详解相关推荐

  1. iPhone和Android的WEB应用开发详解

    iPhone和Android的WEB应用开发详解 在我们现在的生活中,移动设备的作用日益重要.我们使用它们进行交流.我们使用它们进行导航.我们甚至可以将它们用作方便的手电筒.面向 iPhone 和 A ...

  2. Android个人手机通讯录开发详解

    一.Android 个人手机通讯录开发 数据存储:SQLite 数据库 开发工具:Android Studio 二.Phone Module 简介 界面展示 文件结构简单分析 三.个人手机通讯录代码实 ...

  3. Android 系统(252)---Android:BLE智能硬件开发详解

    Android:BLE智能硬件开发详解 目录 前言 BLE是个什么鬼 BLE中的角色分工 主要的关键词和概念  GATT(Generic Attribute Profile ) Characteris ...

  4. Android自定义定时闹钟开发详解

    这篇文章主要为大家详细介绍了Android自定义定时闹钟开发,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 本文实例为大家分享了Android开发之自定义闹钟实现,供大 ...

  5. Android自定义动态壁纸,Android自定义动态壁纸开发详解

    看到有些手机酷炫的动态壁纸,有没有好奇过他们是如何实现的,其实我们自己也可以实现. 一.动态壁纸原理 如果你了解使用过SurfaceView的话,那么开发一款动态壁纸对你来说其实非常简单. 动态壁纸的 ...

  6. JMessage Android 端开发详解

    JMessage Android 端开发详解 目前越来越多的应用会需要集成即时通讯功能,这里就为大家详细讲一下如何通过集成 JMessage 来为你的 App 增加即时通讯功能. 首先,一个最基础的 ...

  7. 《Android游戏开发详解》一导读

    前 言 Android游戏开发详解 作为对编程知之甚少或者毫无所知的初学者,开始学习Android游戏开发,可能会觉得就像是穿越陌生的星际的旅程.有太多的事情要尝试,太多的知识要学习,令人遗憾的是,还 ...

  8. 《Android游戏开发详解》——第2章,第2.10节使用对象

    本节书摘来自异步社区<Android游戏开发详解>一书中的第2章,第2.10节使用对象,作者 [美]Jonathan S. Harbour,更多章节内容可以访问云栖社区"异步社区 ...

  9. 《Android游戏开发详解》一1.8 控制流程第2部分——while和for循环

    本节书摘来异步社区<Android游戏开发详解>一书中的第1章,第1.8节,译者: 李强 责编: 陈冀康,更多章节内容可以访问云栖社区"异步社区"公众号查看. 1.8 ...

最新文章

  1. 福布斯:2022年计算机视觉领域五大发展趋势
  2. 2002无法连接mysql阿里云_2002无法登录MySQL服务器
  3. 1035. 插入与归并(25)
  4. mysql执行的list_CMD如何进入Mysql命令并执行相关查询
  5. android画布缩放 移动demo,Android:画布无法缩放
  6. dudu: 图片显示错误问题,望更正
  7. 华为Mate30和华为Mate30 Pro哪款实用?
  8. 解决Linux Fedora 虚拟机root用户登录提示鉴定故障的问题
  9. ns2 java_【NS2】用eclipse调试NS2(转载)
  10. 有hcna证没有工作经验好找工作吗?
  11. html如何退出登录,微信小程序怎么退出登录
  12. android 编写计时器,Android用5种方式实现自定义计时器, 哪种才是你的菜?
  13. 华为云MySQL云数据库,轻松助力数据上云
  14. 计算机中的量子力学,从量子力学解读宇宙:我们也许存在于计算机虚拟的世界中!...
  15. 俄语学习之——字母及发音对照表
  16. 华硕装鸿蒙系统,智能家居 篇八:解决华硕路由器设置不当造成传感器延迟
  17. CAD三维图形转化成二维图形的过程具体的步骤
  18. Unity Metaverse(四)、接入环信IM SDK 实现用户登录注册
  19. 一梦江湖获取服务器信息后没有登录,一梦江湖登录不上怎么办 登录不上解决方案...
  20. Unity中常用到的基础函数

热门文章

  1. mongoDB1: 安装与基础操作
  2. 封禁、下架!微信出手了,规范整治数字藏品平台!
  3. 牛投客- 最新热门炒股讲解分享
  4. 【Java】练习题库 程序阅读题
  5. [转摘]必须学好C++么?
  6. Win10更新后连不上网,电脑win10系统更新后连不上网
  7. 阿里云课堂-day06
  8. 合肥师范学院计算机学院行知学堂,计算机学院始信社区“行知学堂”圆满结课...
  9. 音乐节拍识别 计算机,科学网—音乐节拍跟踪或音乐节拍检测软件,LilyBeats alpha - 石自强的博文...
  10. 拼接URL在线生成二维码