当前位置: 首页 > news >正文

Android移动应用开发之TextView实现阴影跑马灯文字效果

文章目录

  • 前言
  • 创建项目
  • 配置文件简介
  • 阴影走马灯文字
    • values/string.xml
    • values/colors.xml
    • layout/activity_main.xml
    • 法2
      • main/java
      • layout/activity_main.xml
  • 参考

前言

首先需要已经安装好了Andorid Studio并且配置好了虚拟手机并能够运行开机。

创建项目

创建一个project
在这里插入图片描述
选empty即可
在这里插入图片描述
点击next

在这里插入图片描述
自己调整项目路径
注意不要出现中文
这里Android选择5.0说可以支持大概98.8%的设备,蛮多了。
点击finish完成创建

然后他会自己下载配置文件,需要联网耐心等待。

下载完成后
在这里插入图片描述
点击project选择project可以展现工程的全部文件

点击Android就展现
Android目录下的文件
在这里插入图片描述

配置文件简介

##
主要用户来放需要的java类

在这里插入图片描述
layout放置布局文件

在这里插入图片描述
values放颜色、文字、样式等配置文件。

阴影走马灯文字

values/string.xml

配置文字

<resources>
    <string name="app_name">Hunter World</string>
    <string name="tv_one">ICY Hunter ICY Hunter ICY Hunter ICY Hunter</string>
</resources>

values/colors.xml

配置颜色

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="purple_200">#FFBB86FC</color>
    <color name="purple_500">#FF6200EE</color>
    <color name="purple_700">#FF3700B3</color>
    <color name="teal_200">#FF03DAC5</color>
    <color name="teal_700">#FF018786</color>
    <color name="black">#FF000000</color>
    <color name="white">#FFFFFFFF</color>
</resources>

layout/activity_main.xml

配置布局文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <TextView
        android:id="@+id/tv_one"
        android:layout_width="match_parent"
        android:layout_height="282dp"
        android:text="@string/tv_one"
        android:textColor="@color/black"
        android:textStyle="normal"
        android:textSize="100sp"
        android:background="@color/purple_200"
        android:layout_gravity="center_vertical"
        android:shadowColor="@color/purple_700"
        android:shadowRadius="3.0"
        android:shadowDx="15.0"
        android:shadowDy="10.0"
        android:singleLine="true"
        android:ellipsize="marquee"
        android:marqueeRepeatLimit="marquee_forever"
        android:focusable="true"
        android:focusableInTouchMode="true"
        android:clickable="true"
        >
        <requestFocus/>
    </TextView>


</LinearLayout>

在这里插入图片描述
点击运行app
然后虚拟机就会出现如下:
在这里插入图片描述
出现滚动的带阴影的跑马灯的效果。

法2

对代码进行如下添加和修改:

main/java

main/java的保重创建一个java类(MyTextView)
在这里插入图片描述
MyTextView:

package com.example.hunter;

import android.content.Context;
import android.util.AttributeSet;
import android.widget.TextView;

import androidx.annotation.Nullable;

public class MyTextView extends TextView {

    public MyTextView(Context context) {
        super(context);
    }

    public MyTextView(Context context, @Nullable AttributeSet attrs) {
        super(context, attrs);
    }

    public MyTextView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }

    @Override
    public boolean isFocused() {
        return true;
    }
}

layout/activity_main.xml

用上自己写的类

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <com.example.hunter.MyTextView
        android:id="@+id/tv_one"
        android:layout_width="match_parent"
        android:layout_height="282dp"
        android:text="@string/tv_one"
        android:textColor="@color/black"
        android:textStyle="normal"
        android:textSize="100sp"
        android:background="@color/purple_200"
        android:layout_gravity="center_vertical"
        android:shadowColor="@color/purple_700"
        android:shadowRadius="3.0"
        android:shadowDx="15.0"
        android:shadowDy="10.0"
        android:singleLine="true"
        android:ellipsize="marquee"
        android:marqueeRepeatLimit="marquee_forever"
        android:focusable="true"
        android:focusableInTouchMode="true"
        android:clickable="true"
        />



</LinearLayout>

在这里插入图片描述
然后点击重新运行

出现一样的效果。

参考

https://www.bilibili.com/video/BV1Jb4y187C4?p=10&spm_id_from=pageDriver

相关文章:

  • MySQL是怎样运行的:从根儿上理解MySQL | 查询优化器(二):基于规则的优化
  • 数据分享|WEKA用决策树、随机森林、支持向量机SVM、朴素贝叶斯、逻辑回归信贷违约预测报告
  • JavaSE学习----(八)常用类之Stirng类
  • 跨境电商自养号测评补单+广告结合打法,打造爆款产品
  • 01_中间件
  • 记录QUME上模拟ARM运行环境(内核 2.6.30)
  • JavaWeb开发之——MySQL数据模型(04)
  • c语言分层理解(c语言字符串+内存库函数)
  • Es6的promise和async
  • Java项目本地部署宝塔搭建实战java中小医院管理系统源码
  • java 低耦合观察者模式
  • 七、OCR-PaddlePaddle训练源码解析系列-文字识别
  • 数据结构与算法之非递归遍历二叉树
  • Unity技术手册 - 创建物体有几种方式?
  • threejs中各种的对像详细介绍
  • 自己简单写的 事件订阅机制
  • 【Amaple教程】5. 插件
  • Docker: 容器互访的三种方式
  • Dubbo 整合 Pinpoint 做分布式服务请求跟踪
  • Invalidate和postInvalidate的区别
  • JavaScript实现分页效果
  • java正则表式的使用
  • Just for fun——迅速写完快速排序
  • Linux Process Manage
  • linux学习笔记
  • React-生命周期杂记
  • spring cloud gateway 源码解析(4)跨域问题处理
  • vue从创建到完整的饿了么(11)组件的使用(svg图标及watch的简单使用)
  • webpack入门学习手记(二)
  • 阿里云前端周刊 - 第 26 期
  • 编写符合Python风格的对象
  • 工作中总结前端开发流程--vue项目
  • 为视图添加丝滑的水波纹
  • 新版博客前端前瞻
  • AI算硅基生命吗,为什么?
  • Nginx实现动静分离
  • 回归生活:清理微信公众号
  • ​【已解决】npm install​卡主不动的情况
  • ![CDATA[ ]] 是什么东东
  • # 学号 2017-2018-20172309 《程序设计与数据结构》实验三报告
  • #100天计划# 2013年9月29日
  • #我与Java虚拟机的故事#连载10: 如何在阿里、腾讯、百度、及字节跳动等公司面试中脱颖而出...
  • (10)Linux冯诺依曼结构操作系统的再次理解
  • (2)Java 简介
  • (9)YOLO-Pose:使用对象关键点相似性损失增强多人姿态估计的增强版YOLO
  • (C#)一个最简单的链表类
  • (C语言版)链表(三)——实现双向链表创建、删除、插入、释放内存等简单操作...
  • (Forward) Music Player: From UI Proposal to Code
  • (ZT)薛涌:谈贫说富
  • (八)五种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (非本人原创)我们工作到底是为了什么?​——HP大中华区总裁孙振耀退休感言(r4笔记第60天)...
  • (考研湖科大教书匠计算机网络)第一章概述-第五节1:计算机网络体系结构之分层思想和举例
  • (续)使用Django搭建一个完整的项目(Centos7+Nginx)
  • (译)计算距离、方位和更多经纬度之间的点
  • (转)linux 命令大全