3

我有一个 Android 主屏幕小部件,上面有一个TextView.. 不幸的是,我在设计它时遇到了一些问题..

我想对文本应用动态(从代码更改)阴影,但我不确定如何执行此操作。我可以在布局中设置阴影,但是如果我想在代码中更改它,则无法通过RemoteView!

我以为我可以用 a 来做到这一点SpannableString,但我找不到任何有用的东西。如果我在其中使用 a TextAppearanceSpan,它将忽略样式中的阴影属性。此外,当我开始在 aSpannableString上使用 a 时,TextView它开始忽略我应用于TextView:(

那有什么问题,我最好的做法是什么?

4

2 回答 2

0

已编辑:这不适用于小部件,因为那里不能使用自定义视图。但这对于试图将其设置在其他地方的远程视图上的人可能会有所帮助。

请参阅http://code.google.com/p/android/issues/detail?id=10029


这样做的一种方法是制作一个名为 ShadowyTextView 的自定义 TextView,并为我要设置的每个值提供一个方法。

然后只需编写如下内容:

remoteViews.setInt(R.id.myShadowyText, "setShadowColor", someColor);

所以属性是通过反射设置的。

也许不是最优雅的解决方案,但找不到更好的解决方案。

于 2015-01-14T06:00:22.997 回答
-1

尝试使用以下代码

TextView textHello = (TextView)findViewById(R.id.hello);
        textHello.setShadowLayer(
          5f,   //float radius
          10f,  //float dx
          10f,  //float dy 
          0xFFffffff //int color
          );
于 2011-06-22T09:13:12.340 回答