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个基本的东西要设置。
- 阴影颜色
- Shadow Dx – 它指定阴影的X轴偏移。 您可以给 – / +值,其中-Dx在文本的左侧绘制阴影,在右侧绘制+ Dx
- 阴影Dy – 它指定阴影的Y轴偏移量。 -Dy指定文字上方的阴影,+ Dy指定文字下方。
- 阴影半径 – 指定阴影在边缘应该模糊的程度。 如果影子需要突出,请提供一个小的值。 否则,否则。
例如
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"