Android振动器使用方法详解

 更新时间:2021年08月16日 10:04:37   作者:路宇~  
这篇文章主要为大家详细介绍了Android振动器使用方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了Android振动器使用方法的具体代码,供大家参考,具体内容如下

效果图:

选择相应的毫秒数,就会振动相应的秒数。

实现步骤:

一、创建activity_vibrator.xml布局

<?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"
    tools:context=".VibratorActivity"
    android:orientation="vertical"
    >
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        >
        <TextView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="振动时长:"
            android:textSize="15sp"
            android:textColor="@color/black"
            android:paddingLeft="5dp"
            />
        <Spinner
            android:id="@+id/spinner"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="3"
            android:paddingTop="5dp"
            android:spinnerMode="dialog"
            />
    </LinearLayout>
    <Button
        android:id="@+id/btn_start"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="开始振动"
        android:textColor="@color/black"
        android:textSize="20sp"
        />
    <TextView
        android:id="@+id/tv_specific"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textSize="20sp"
        android:gravity="center"
        android:text="当前振动了多长时间"
        />
</LinearLayout>

之后绘制,下拉列表,每一列的高度和每一列中字体的颜色和太小等属性在这里面设置

item_select.xml布局如下:

<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/tv"
    android:layout_width="match_parent"
    android:layout_height="60dp"
    android:gravity="center"
    android:textColor="@color/black"
    android:textSize="20sp" />

之后在VibratorActivity中实现振动功能:

public class VibratorActivity extends AppCompatActivity implements View.OnClickListener {
    private Spinner spinner;
    private TextView tv_specific;
    private Button btn_start;
    private ArrayAdapter<String> arrayAdapter;
    private String second;
    private Vibrator vibrator;
    private int mDuration;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_vibrator);
        spinner = findViewById(R.id.spinner);
        tv_specific = findViewById(R.id.tv_specific);
        btn_start = findViewById(R.id.btn_start);
        //设置下拉框
        CreateSpinner();
        btn_start.setOnClickListener(this);
    }

    private void CreateSpinner() {
        String[] array = new String[]{"0.5秒", "1秒", "2秒", "3秒", "4秒", "5秒"};
        int[] durationArray = new int[]{500, 1000, 2000, 3000, 4000, 5000};
        //设置我们自定义的资源样式
        arrayAdapter = new ArrayAdapter<>(this, R.layout.item_select, array);
        spinner.setPrompt("请选择毫秒数");
        //将适配器与下拉列表框关联起来
        spinner.setAdapter(arrayAdapter);
        spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
                mDuration = durationArray[position];
            }

            @Override
            public void onNothingSelected(AdapterView<?> parent) {

            }
        });
    }


    @Override
    public void onClick(View v) {
        String vibratorService = Context.VIBRATOR_SERVICE;
        //从系统服务中获取振动管理器
        vibrator = (Vibrator) getSystemService(vibratorService);
        //判断设置是否包含振动器
        if (vibrator.hasVibrator()) {
            //振动的秒数
            vibrator.vibrate(mDuration);
            String desc = String.format("%s手机振动了%f秒", DateUtil.getNowTimeDetail(), mDuration / 1000.0F);
            tv_specific.setText(desc);
        }
    }

    //应用退出,则取消振动
    @Override
    protected void onDestroy() {
        super.onDestroy();
        vibrator.cancel();
    }
}

最后不要忘了在AndroidManifest.xml清单文件中加入控制设备振动的权限:

<!-- 振动权限 -->
<uses-permission android:name="android.permission.VIBRATE" />

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

您可能感兴趣的文章:

相关文章

  • Kotlin空安全空类型浅谈

    Kotlin空安全空类型浅谈

    这篇文章主要为大家介绍了Kotlin空安全空类型的实用技巧浅谈,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-06-06
  • Android如何在App中启动系统闹钟

    Android如何在App中启动系统闹钟

    这篇文章主要为大家详细介绍了Android如何在App中启动系统闹钟,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-01-01
  • Gradle的缓存路径修改的四种方法(小结)

    Gradle的缓存路径修改的四种方法(小结)

    这篇文章主要介绍了Gradle的缓存路径修改的四种方法(小结),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • Android XListView下拉刷新和上拉加载更多

    Android XListView下拉刷新和上拉加载更多

    这篇文章主要为大家详细介绍了Android XListView下拉刷新和上拉加载更多,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-11-11
  • Android实现定时自动静音小助手

    Android实现定时自动静音小助手

    这篇文章主要为大家详细介绍了Android实现定时自动静音小助手,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-06-06
  • 详解ASP.NET Core MVC四种枚举绑定方式

    详解ASP.NET Core MVC四种枚举绑定方式

    这篇文章主要介绍了详解ASP.NET Core MVC四种枚举绑定方式, 小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-04-04
  • Flutter实现倒计时功能

    Flutter实现倒计时功能

    这篇文章主要为大家详细介绍了Flutter实现倒计时功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • Android实现EditText图文混合插入上传功能

    Android实现EditText图文混合插入上传功能

    这篇文章主要为大家详细介绍了Android实现EditText图文混合插入上传功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-08-08
  • android+json+php+mysql实现用户反馈功能方法解析

    android+json+php+mysql实现用户反馈功能方法解析

    相信每个项目都会有用户反馈建议等功能,这个实现的方法很多,下面是我实现的方法,供大家交流
    2012-11-11
  • android图像绘制(三)画布刷屏问题记录

    android图像绘制(三)画布刷屏问题记录

    在canvas中绘制动态图的时候,如果使用了一个固定的背景图片,只有一个小小的精灵在移动!这样的情况下却不得不在没帧中重新绘制背景图片,使得效率降低,本文章只是记录一下,并不是解决方法感兴趣的朋友可以了解下
    2013-01-01

最新评论