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... 

感谢任何提示!

你应该可以像这样(从Ringdroid的源代码中获取)添加风格:

  <style name="AudioFileInfoOverlayText"> <item name="android:paddingLeft">4px</item> <item name="android:paddingBottom">4px</item> <item name="android:textColor">#ffffffff</item> <item name="android:textSize">12sp</item> <item name="android:shadowColor">#000000</item> <item name="android:shadowDx">1</item> <item name="android:shadowDy">1</item> <item name="android:shadowRadius">1</item> </style> 

在你的布局中,使用这样的风格:

  <TextView android:id="@+id/info" android:layout_width="fill_parent" android:layout_height="wrap_content" style="@style/AudioFileInfoOverlayText" android:gravity="center" /> 

编辑:源代码可以在这里查看: https : //github.com/google/ringdroid

编辑2:要编程设置这种风格,你会做这样的事情(修改从这个例子来匹配ringdroid的资源从上面)

 TextView infoTextView = (TextView) findViewById(R.id.info); infoTextView.setTextAppearance(getApplicationContext(), R.style.AudioFileInfoOverlayText); 

setTextAppearance的签名是

public void setTextAppearance(Context context,int resid)

因为:API级别1
设置指定TextAppearance资源中的文本颜色,大小,样式,提示颜色和高亮颜色。

您可以在代码和XML中执行这两个操作。 只有4个基本的东西要设置。

  1. 阴影颜色
  2. Shadow Dx – 它指定阴影的X轴偏移。 您可以给 – / +值,其中-Dx在文本的左侧绘制阴影,在右侧绘制+ Dx
  3. 阴影Dy – 它指定阴影的Y轴偏移量。 -Dy指定文字上方的阴影,+ Dy指定文字下方。
  4. 阴影半径 – 指定阴影在边缘应该模糊的程度。 如果影子需要突出,请提供一个小的值。 否则,否则。

例如

  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)); 

绘制2个文本:一个灰色(这将是阴影),并在其上面绘制第二个文本(y坐标1px多于阴影文本)。

如果你想获得像Android在启动器中那样的阴影,我们正在pipe理这些值。 如果您想创build将显示为Widget而没有背景的TextView,则它们非常有用。

 android:shadowColor="#94000000" android:shadowDy="2" android:shadowRadius="4"