欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  技术分享

Android给TextView_Button的文字添加阴影效果_安卓TextView显示文字阴影效果

程序员文章站 2022-03-01 16:03:44
...

本文主要讲解如何实现TextView的文字阴影效果、主要有两种实现的方法

一种是通过代码实现、另外一种是通过在配置文件中添加文字阴影来实现

首先来看一下代码如果实现


//@attr ref android.R.styleable#TextView_shadowColor
//@attr ref android.R.styleable#TextView_shadowDx
//@attr ref android.R.styleable#TextView_shadowDy
//@attr ref android.R.styleable#TextView_shadowRadius
public void setShadowLayer(float radius, float dx, 
	float dy, int color) {
	mTextPaint.setShadowLayer(radius, dx, dy, color);
	mShadowRadius = radius;
	mShadowDx = dx;
	mShadowDy = dy;
	invalidate();
}


mTextView.setShadowLayer(10F, 11F,5F, Color.YELLOW); 第一个参数为模糊度,越大越模糊

第二个参数是阴影离开文字的x横向距离、第三个参数是阴影离开文字的Y横向距离

第四个参数是阴影颜色(如果模糊度为0是看不到阴影效果的)
Button是继承TextView的、所以Button也可以在代码中使用setShadowLayer(float radius, float dx, float dy, int color)方法


再来看一下如果通过布局配置文件来实现

首先创建一个style文件在values文件夹下

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <style name="StyleBarTitle">
        <item name="android:layout_gravity">center_vertical</item>
        <item name="android:layout_width">0dp</item>
        <item name="android:layout_height">wrap_content</item>
        <item name="android:layout_weight">1</item>
        <item name="android:gravity">center_horizontal</item>
        <item name="android:textSize">50dip</item>
        <item name="android:textStyle">bold</item>
        <item name="android:textColor">#FFFFFF</item>
        <item name="android:shadowColor">#ffffff00</item>
        <item name="android:shadowDx">20</item>
        <item name="android:shadowDy">20</item>
        <item name="android:shadowRadius">20</item>
        <item name="android:background">@null</item>
    </style>
</resources>


在这里说明一下一些参数的意思

android:shadowColor 阴影颜色

android:shadowDx 阴影的水平偏移量

android:shadowDy 阴影的垂直偏移量

android:shadowRadius 阴影的范围


创建textView在layout文件


<TextView
      android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        style="@style/StyleBarTitle"
        android:id="@+id/txBarTitle1"
        android:text="dwtedx!" />
需要注意的地方 :将android:shadowRadius=0 的时候是看不到阴影的
Button的文字阴影效果的添加与上面的一样