Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/216.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android-文本上的阴影?_Android - Fatal编程技术网

Android-文本上的阴影?

Android-文本上的阴影?,android,Android,我想知道如何在android中添加文本阴影 我有下面的代码,这是一个位图应用,我想被阴影 paint.setColor(Color.BLACK); paint.setTextSize(55); paint.setFakeBoldText(false); paint.setShadowLayer(1, 0, 0, Color.BLACK); //This only shadows my whole view... 绘制两个文本:一个灰色(它将是阴影),然后在上面绘制第二个文本(y坐标比阴影文本多

我想知道如何在android中添加文本阴影

我有下面的代码,这是一个位图应用,我想被阴影

paint.setColor(Color.BLACK);
paint.setTextSize(55);
paint.setFakeBoldText(false);
paint.setShadowLayer(1, 0, 0, Color.BLACK); //This only shadows my whole view...

绘制两个文本:一个灰色(它将是阴影),然后在上面绘制第二个文本(y坐标比阴影文本多1倍)。

您应该能够添加样式,如下所示(取自Ringdroid的源代码):

setTextAppearance
的签名为

公共void settext外观(上下文,int resid)

自:API 1级
设置文本颜色、大小、样式、提示颜色和颜色 突出显示指定TextAppearance资源中的颜色


您可以在代码和XML中完成这两项工作。只需设置4个基本事项

  • 阴影颜色
  • 阴影Dx-指定阴影的X轴偏移。您可以给出-/+值,其中-Dx在文本左侧绘制阴影,而+Dx在右侧绘制阴影
  • 阴影Dy-指定阴影的Y轴偏移-Dy指定文字上方的阴影,+Dy指定文字下方的阴影
  • 阴影半径-指定边缘处阴影的模糊程度。如果阴影需要突出,请提供一个较小的值。否则
  • e、 g

    这将在文本的左下侧绘制一个突出的阴影。 在代码中,您可以添加如下内容:

        TextView item = new TextView(getApplicationContext());
        item.setText(R.string.text);
        item.setTextColor(getResources().getColor(R.color.general_text_color));
        item.setShadowLayer(0.01f, -2, 2,   getResources().getColor(R.color.text_shadow_color));
    

    如果你想实现一个像Android在启动器中那样的阴影,我们正在管理这些值。如果您想要创建将显示为小部件的文本视图,而不需要背景,那么它们非常有用

    android:shadowColor="#94000000"
    android:shadowDy="2"
    android:shadowRadius="4"
    
    
    1.
    1.
    1.
    @android:彩色/黑色
    @android:彩色/白色
    
    然后用作

     <TextView
                android:id="@+id/text"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textSize="15sp"
                tools:text="Today, May 21"
                style="@style/WhiteTextWithShadow"/>
    
    
    
    输出:


    谢谢大家的帖子。我确实通过使用两个paint对象并在其中一个paint-object上使用setShadaowLayer解决了这个问题。如果使用alpha,这可能看起来不错,但看起来不像漂亮、柔和、声明式设置的阴影。但是OP要求定制小部件!可能是这样,但没有任何迹象表明他不能在ImageView上使用此方法。我以为他是直接画画的,因为他没别的办法。太棒了。。。为标准字体增加了所需的深度,使其在坚实的背景下看起来更好。@Farhan请看这里:真的很有帮助,竖起大拇指,记住你必须有阴影半径。你应该将答案@fhucho left标记为正确答案;我试图做同样的事情,但第一次看到这篇文章时就错过了,因为没有答案被标记为正确。多次向上投票的答案具有误导性,因为它与以编程方式添加阴影无关
        android:shadowColor="@color/text_shadow_color"
        android:shadowDx="-2"
        android:shadowDy="2"
        android:shadowRadius="0.01"
    
        TextView item = new TextView(getApplicationContext());
        item.setText(R.string.text);
        item.setTextColor(getResources().getColor(R.color.general_text_color));
        item.setShadowLayer(0.01f, -2, 2,   getResources().getColor(R.color.text_shadow_color));
    
    android:shadowColor="#94000000"
    android:shadowDy="2"
    android:shadowRadius="4"
    
     <style name="WhiteTextWithShadow" parent="@android:style/TextAppearance">
        <item name="android:shadowDx">1</item>
        <item name="android:shadowDy">1</item>
        <item name="android:shadowRadius">1</item>
        <item name="android:shadowColor">@android:color/black</item>
        <item name="android:textColor">@android:color/white</item>
    </style>
    
     <TextView
                android:id="@+id/text"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textSize="15sp"
                tools:text="Today, May 21"
                style="@style/WhiteTextWithShadow"/>
    
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical"
        android:padding="20dp" >
    
        <TextView
            android:id="@+id/textview"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:shadowColor="#000"
            android:shadowDx="0"
            android:shadowDy="0"
            android:shadowRadius="50"
            android:text="Text Shadow Example1"
            android:textColor="#FBFBFB"
            android:textSize="28dp"
            android:textStyle="bold" />
    
        <TextView
            android:id="@+id/textview2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:text="Text Shadow Example2"
            android:textColor="#FBFBFB"
            android:textSize="28dp"
            android:textStyle="bold" />
    
    </LinearLayout>
    
    TextView textv = (TextView) findViewById(R.id.textview2);
    textv.setShadowLayer(30, 0, 0, Color.RED);