安卓开发中的一些实用小技巧

本文分享了安卓开发中去除状态栏和标题栏、实现跑马灯效果、禁止屏幕旋转、根据状态显示不同背景图片及双击返回键退出应用等实用技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本人安卓新手,在开发过程中发现一些琐碎的知识点每次翻找起来非常不便,于是记录在此博客中,便于查阅。


1.去除状态栏和标题栏:

可以在JAVA代码中进行操作,但是在xml中进行设置更加便利和直观。在主配置文件AndroidManifest.xml的相应activity中添加这一行属性:

android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
其中NoTitleBar是指没有标题栏,Fullscreen是全屏,也就是去除状态栏(显示手机电量信号等的那一栏)了。


2.TextView实现跑马灯(文字滚动显示)效果:

非常简单,也容易理解,只需在TextView的xml中设置这几个属性:

        android:singleLine="true"
        android:ellipsize="marquee"
        android:focusable="true"
        android:focusableInTouchMode="true"

singleLine就是是否将文字显示成一行。ellipsize是指文字超出组件宽度时的处理方式,这里设置的marquee就是滚动显示。下面两行是获得焦点,有焦点时textview才会滚动起来,在代码中动态操作让它失去焦点会停止滚动。


3.禁止转屏:

在开发时有时activity从竖屏转到横屏时就销毁了,非常烦人,这里设置也是非常简单,在主配置文件AndroidManifest.xml的相应activity中添加这一行属性:

android:screenOrientation="portrait"

4.根据按钮(或者其他组件)的状态显示不同背景图片:

在drawable下新建一个xml,为组件设置背景图时设置此xml(与设置普通图片相同)

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true"
        android:drawable="@drawable/icon"></item>
</selector>
如例子所示,item有两个属性,drawable就是对应的图片,第一个属性则是状态。 state_pressed="true"表示组件被按下,相应的,值为false时就表示没被按下。组件会选择从前往后状态第一个匹配的item里的图片进行显示。


5.双击back键退出activity(也就是第二次时才执行原back方法):

这里我们使用一个boolean值quit来判断用户第几次按键,先在onCreate里将这个quit初始化为false.

重写onBackPressed方法:

@Override
    public void onBackPressed() {
        if (quit==false)
        {
            Toast.makeText(MainActivity.this,"再按一次退出",Toast.LENGTH_SHORT).show();
            quit=true;
            new Timer(true).schedule(new TimerTask() {
                @Override
                public void run() {
                    quit=false;
                }
            },2000);
        }else {
            super.onBackPressed();
        }
    }

第一次按下显示提示消息:再按一次退出,并将quit改为true,第二次按下就进入else了。

这里借助了一个Timer类,这个类可以处理延时任务,我们可以看到,schedule方法有两个参数,TimerTask和一个数2000,TimerTask就是要处理的任务,相关代码写在它的run方法里,2000表示延迟2000毫秒。这一段代码表示2000毫秒后将quit改为false,也就是复位。


第一次写博客,没什么经验,欢迎批评指正。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值