Android-文本上的阴影?
我想知道如何在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坐标比阴影文本多
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个基本事项
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);