Android 自定义View实现仿微信语音界面

本文介绍如何在Android项目中实现一个自定义View,以仿造微信的语音录制界面。由于在某些设备上Button+OnTouchListener+Dialog的方式存在触发问题,作者选择直接编写自定义View来解决。文章提供了效果图以及自定义View的核心代码,但未包含录音和播放功能的实现。
摘要由CSDN通过智能技术生成

转载请注明出处:https://blog.csdn.net/a512337862/article/details/90602156

前言

因为最近的项目需要使用录音功能,开始的想法是Button+OnTouchListener+Dialog实现,在大部分手机中都没问题,只有MI8会偶尔无法触发MotionEvent.ACTION_UP,导致程序异常。所以就自己写了个自定义View来实现,主要也是通过监听
OnTouchListener+Dialog来实现。这里只实现了自定义View,并不涉及录音和播放。效果图如下:
在这里插入图片描述

代码

代码并不复杂,配合注释应该很容易理解。

/**
 * Author : BlackHao
 * Time : 2019/4/18 14:03
 * Description : 自定义录音按钮布局界面
 */
public class PressedView extends View implements View.OnTouchListener {

    private int normalRes;
    private String normalText = "";
    private int pressedRes;
    private String pressedText = "";
    //
    private Paint paint;
    private Rect rect;
    //当前是否是按下状态
    private boolean isPressed = false;
    //
    private PressCallback callback;
    //按下的位置y坐标
    private int pressedY = 0;
    //当前是否是outSize
    private boolean isOutSize = false;
    //字体dp大小
    private static int TEXT_SIZE = 20;
    //对话框相关
    private Dialog soundVolumeDialog = null;
    //音量图片
    private ImageView soundVolumeImg = null;
    //对话框背景
    private RelativeLayout soundVolumeLayout = null;

    public PressedView(Context context) {
        super(context);
        init();
    }

    public PressedView(Context context, @Nullable AttributeSet attrs) 
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值