热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Android中的Glow文本视图

Android中的Glow文本视图原文:https://w

Android 中的 Glow 文本视图

原文:https://www.geeksforgeeks.org/glow-textview-in-android/

默认情况下,安卓没有提供简单的方法将发光添加到文本视图或任何其他视图中,因此为了使我们的应用程序更加吸引人和美观,我们可以将发光效果添加到我们的文本视图中。为此,我们可以使用许多不同的外部库。下面给出一个 GIF 示例,了解一下我们在本文中要做什么。注意,我们将使用 Java 语言来实现这个项目。

Glow TextView in Android Sample GIF

接近

第一步:创建新项目

要在安卓工作室创建新项目,请参考如何在安卓工作室创建/启动新项目。注意选择 Java 作为编程语言。

第二步:去编码区之前先做一些前置任务

转到应用程序->RES->values->colors . XML文件,为应用程序设置颜色。

可扩展标记语言


xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="colorPrimary">#0F9D58color>
    <color name="colorPrimaryDark">#0F9D58color>
    <color name="colorAccent">#05af9bcolor>
    <color name="white">#ffffffcolor>
resources>

转到 Gradle 脚本>构建. gradle (模块:app)部分,导入以下依赖项,然后单击上面弹出窗口中的“立即同步”。

//添加 glowtextview

实现' com . riningan . widget:glwtextview:1.0 '

第三步:设计 UI

activity_main.xml 中,删除默认的文本视图,将布局更改为相对布局,并添加辉光文本视图,我们还添加了 2 SeekBar 来更改辉光文本视图的颜色和半径,如下所示。下面是activity _ main . XML文件的代码。

可扩展标记语言


xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    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=".MainActivity">
    
    <com.riningan.widget.GlowTextView
        android:id="@+id/glowTextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:padding="40dp"
        android:text="Hello world :)"
        android:textColor="@android:color/white"
        android:textSize="40dp"
        app:glowColor="@color/Green"
        app:glowRadius="16dp" />
    
    <SeekBar
        android:id="@+id/seekBarGlow"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_marginBottom="80dp"
        android:max="100" />
    
    <SeekBar
        android:id="@+id/seekBarColor"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_marginBottom="120dp" />
RelativeLayout>

属性:


  1. app:glowRadius :用于设置发光半径【默认值 60f】

  2. app:glowColor :用于设置发光颜色【默认颜色值白色】

第四步:编码部分

打开MainActivity.java文件,在类内部,我们创建一个整数数组来存储不同的颜色(我们稍后使用它来改变glwtextview的颜色),如下所示

Java 语言(一种计算机语言,尤用于创建网站)


// array of different colors
int[] colors={Color.RED,Color.GREEN,Color.BLACK,Color.CYAN,Color.DKGRAY,Color.GRAY,Color.LTGRAY,Color.BLUE,Color.WHITE,Color.YELLOW,Color.MAGENTA};

现在在 onCreate() 中获取 GlowTextView 和 2 SeekBar 的参考,并将 SeekBar 的最大颜色设置为colors . length–1,如下所示。

Java 语言(一种计算机语言,尤用于创建网站)


// getting Glow seekBar reference
SeekBar seekBarGlow =(SeekBar)findViewById(R.id.seekBarGlow);
// getting Color seekBar reference
SeekBar seekBarColor =(SeekBar)findViewById(R.id.seekBarColor);
// setting the max of seekBar to color length -1
seekBarColor.setMax(colors.length-1);
// getting glowTextView reference
GlowTextView  glowTextView =(GlowTextView)findViewById(R.id.glowTextView);

现在创建一个 SeekBar 的SeekBar angelisteneronprogress changed(SeekBar SeekBar,int progress,boolean fromUser)GlowColorglow dius值设置为如下所示的过程

Java 语言(一种计算机语言,尤用于创建网站)


// seekBar change listener for changing the glow radius
seekBarGlow.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
           @Override
           public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
               // change the glow radius of the glow text view
               glowTextView.setGlowRadius(progress);
           }
           @Override
           public void onStartTrackingTouch(SeekBar seekBar) {
           }
           @Override
           public void onStopTrackingTouch(SeekBar seekBar) {
           }
       });
        // seekBar change listener for changing color
        seekBarColor.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
            @Override
            public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
                // change the glow color  of the glow text view
                glowTextView.setGlowColor(colors[progress]);
            }
            @Override
            public void onStartTrackingTouch(SeekBar seekBar) {
            }
            @Override
            public void onStopTrackingTouch(SeekBar seekBar) {
            }
});

以下是MainActvity.java文件的完整代码。

Java 语言(一种计算机语言,尤用于创建网站)


import android.graphics.Color;
import android.os.Bundle;
import android.widget.SeekBar;
import androidx.appcompat.app.AppCompatActivity;
import com.riningan.widget.GlowTextView;
public class MainActivity extends AppCompatActivity {
    // array of different colors
    int[] colors = {Color.RED, Color.GREEN, Color.BLACK, Color.CYAN, Color.DKGRAY, Color.GRAY, Color.LTGRAY, Color.BLUE, Color.WHITE, Color.YELLOW, Color.MAGENTA};
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        // getting Glow seekBar reference
        SeekBar seekBarGlow = (SeekBar) findViewById(R.id.seekBarGlow);
        // getting Color seekBar reference
        SeekBar seekBarColor = (SeekBar) findViewById(R.id.seekBarColor);
        // setting the max of seekBar to color length -1
        seekBarColor.setMax(colors.length - 1);
        // getting glowTextView reference
        GlowTextView glowTextView = (GlowTextView) findViewById(R.id.glowTextView);
        // seekBar change listener for changing the glow radius
        seekBarGlow.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
            @Override
            public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
                // change the glow radius of the glow text view
                glowTextView.setGlowRadius(progress);
            }
            @Override
            public void onStartTrackingTouch(SeekBar seekBar) {
            }
            @Override
            public void onStopTrackingTouch(SeekBar seekBar) {
            }
        });
        // seekBar change listener for changing color
        seekBarColor.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
            @Override
            public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
                // change the glow color  of the glow text view
                glowTextView.setGlowColor(colors[progress]);
            }
            @Override
            public void onStartTrackingTouch(SeekBar seekBar) {
            }
            @Override
            public void onStopTrackingTouch(SeekBar seekBar) {
            }
        });
    }
}

输出:

[https://media.geeksforgeeks.org/wp-content/uploads/20210407015437/glow-text-view-2.0.mp4](https://media.geeksforgeeks.org/wp-content/uploads/20210407015437/glow-text-view-2.0.mp4)
推荐阅读
  • Android开发实现的计时器功能示例
    本文分享了Android开发实现的计时器功能示例,包括效果图、布局和按钮的使用。通过使用Chronometer控件,可以实现计时器功能。该示例适用于Android平台,供开发者参考。 ... [详细]
  • 先看看效果是不是自己想要的吧item及item内部控件点击事件不懂的可以先点击查看 ... [详细]
  • 今天就跟大家聊聊有关怎么在Android应用中实现一个换肤功能,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根 ... [详细]
  • SmartRefreshLayout自定义头部刷新和底部加载
    1.添加依赖implementation‘com.scwang.smartrefresh:SmartRefreshLayout:1.0.3’implementation‘com.s ... [详细]
  • Android 自定义控件基础 canvas paint
    1、首先说一下canvas类:ClassOverviewTheCanvasclassholdsthedrawcalls.Todrawsomething,youne ... [详细]
  • Flex中使用filter过滤数据 ... [详细]
  • 发现很多时候展示一堆文字,需要让局部的某些字变粗啊,变大、变颜色、能点击等等要求,今天在这简单总结下方便日后直接复用(用ht ... [详细]
  • 在开发四国军棋的游戏中,通过flex联机游戏开发-四国军棋游戏(五)-提炼棋类开发api,我们提炼出了第一个关于棋类游戏开发的api-FlexChessAPI,这个a ... [详细]
  • log4cpp概述与使用实例一、log4cpp概述Log4cpp是一个开源的C类库,它提供了C程序中使用日志和跟踪调试的功能,它的优点如下࿱ ... [详细]
  • easyuilayout实战
    第一步: ... [详细]
  •  jqueryui中dialog和easyui中的dialog很像,但是最近用到的时候全然没有印象,一段时间不用就忘记了,这篇随笔介绍一下这个控件。1.实例官网源代码中给出了一些实例,首先看看实例是什么样子的。 a.默认功能也是最简单的应用,也就是打开一个对话框,代码如下&amp;amp;lt;!doctypehtml&amp;amp;gt;&amp;amp;lt;html ... [详细]
  • Go GUIlxn/walk 学习3.菜单栏和工具栏的具体实现
    本文介绍了使用Go语言的GUI库lxn/walk实现菜单栏和工具栏的具体方法,包括消息窗口的产生、文件放置动作响应和提示框的应用。部分代码来自上一篇博客和lxn/walk官方示例。文章提供了学习GUI开发的实际案例和代码示例。 ... [详细]
  • 本文介绍了pack布局管理器在Perl/Tk中的使用方法及注意事项。通过调用pack()方法,可以控制部件在显示窗口中的位置和大小。同时,本文还提到了在使用pack布局管理器时,应注意将部件分组以便在水平和垂直方向上进行堆放。此外,还介绍了使用Frame部件或Toplevel部件来组织部件在窗口内的方法。最后,本文强调了在使用pack布局管理器时,应避免在中间切换到grid布局管理器,以免造成混乱。 ... [详细]
  • 本文介绍了如何使用MATLAB调用摄像头进行人脸检测和识别。首先需要安装扩展工具,并下载安装OS Generic Video Interface。然后使用MATLAB的机器视觉工具箱中的VJ算法进行人脸检测,可以直接调用CascadeObjectDetector函数进行检测。同时还介绍了如何调用摄像头进行人脸识别,并对每一帧图像进行识别。最后,给出了一些相关的参考资料和实例。 ... [详细]
  • 今日份分享:Flutter自定义之旋转木马
    今日份分享:Flutter自定义之旋转木马-先上图,带你回到童年时光:效果分析子布局按照圆形顺序放置且平分角度子布局旋转、支持手势滑动旋转、快速滑动抬手继续旋转、自动旋转支持X轴旋 ... [详细]
author-avatar
闷气敦厚
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有