• 013 Android 实现流水灯功能+自定义控件的样式(可以复用)


    1.介绍

    (1)获取屏幕的焦点

    android:focusable与android:focusableInTouchMode(获取屏幕焦点)

    前者针对在键盘下操作的情况,如果设置为true,则键盘上下左右选中,焦点会随之移动。

    后者针对触屏情况,也就是我们点击屏幕的上的某个控件时,不要立即执行相应的点击逻辑,而是先显示焦点(即控件被选中),再点击才执行逻辑。

    以下是获取屏幕焦点的实例代码:

    android:focusable="true"
    android:focusableInTouchMode="true"

    (2)设置单行显示

    android:singleLine="true"

    (3)ellipsize使用方法

    android:ellipsize = "end"    //省略号在结尾
    android:ellipsize = "start"   //省略号在开头
    android:ellipsize = "middle"     //省略号在中间
    android:ellipsize = "marquee" // 跑马灯

    (4)padding与margin作用

    Padding 为内边框,指该控件内部内容,如文本/图片距离该控件的边距

    Margin 为外边框,指该控件距离边父控件的边距

    (5)设置跑马灯显示次数
    android:marqueeRepeatLimit="marquee_forever"来设置跑马灯显示次数,marquee_forever表示不间断无限次
    android:marqueeRepeatLimit="marquee_forever"

    2.自定义样式

    将常用的xml样式抽取出来放到styles.xml中

    <style name="TitleStyle" >
            <!-- Customize your theme here. -->
            <item name="android:layout_width">wrap_content</item>
            <item name="android:layout_height">wrap_content</item>
            <item name="android:padding">10dp</item>
            <item name="android:gravity">center</item>
            <item name="android:background">#00ff00</item>
            <item name="android:textSize">20dp</item>
            <item name="android:layout_weight">1</item>
        </style>

    activity布局中调用:

    <TextView
                android:id="@+id/tvhome_function"
                style="@style/TitleStyle"
                android:text="功能列表" />

    3.xml文件

    主界面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"
        android:orientation="vertical"
        tools:context=".MainActivity">
    
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content">
    
            <TextView
                android:id="@+id/textView2"
                style="@style/TitleStyle"
                android:text="功能列表" />
        </LinearLayout>
    
        <TextView
            android:id="@+id/textView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="100dp"
            android:layout_weight="1"
            android:ellipsize="marquee"
            android:focusable="true"
            android:focusableInTouchMode="true"
            android:marqueeRepeatLimit="marquee_forever"
            android:padding="5dp"
            android:singleLine="true"
            android:text="凌轩,26岁,一米七五的身高,体重六十三公斤,大学本科汉语言文学毕业,学士学位。毕业的时候,老爸替他在老家的县城找了一份老师的工作,可没做到半年,凌轩就忍受不了,自己给自己“下课”了。"
            android:textSize="20dp" />
    </LinearLayout>

    3.效果图

  • 相关阅读:
    web前端常见面试题
    pyhton课堂随笔-基本画图
    安装和启动json-server
    Idea破解注册码
    MongoDB基本增删改查
    MogonDB安装及配置
    python和jupyter安装
    web中静态资源和动态资源的概念及区别
    nodejs基础(三)
    C#进程、线程、CPU
  • 原文地址:https://www.cnblogs.com/luckyplj/p/10809174.html
Copyright © 2020-2023  润新知