phr*_*dtj 1 android textview android-widget
我有一个带有大量文本视图的android程序.最初,所有这些视图都没有阴影.
当我按下一个特定的切换按钮时,我希望这些textViews能够脱颖而出.
理想情况下,我想为它们添加文本阴影发光效果.我已成功完成textView.setShadowLayer(radius,dx,dy,color)的问题
问题是,如果我再次按下相同的切换按钮(这会使阴影出现),我需要删除阴影,使文本不再突出显示.
我试图将阴影层设置为半径0和透明颜色#00FFFFFF,#00000000和颜色#FFFFFFFF,#FF000000.但是,这些都没有将textView设置回它出现的原始方式.
关于如何去除阴影的任何想法.(我真的不需要删除它,我只想让文本显示与添加之前相同的方式)
主要目标是使用切换按钮打开/关闭特定textViews的文本突出显示,我对其他方法开放,而不是使用阴影.理想情况下,我想使用阴影,但突出文本的任何其他想法都很好.
(这部分是在我收到textLayer.setShadow(0,0,0,0)的答案之后追加的;
我在布局xml中使用此样式的textView
<style name="second">
<item name="android:textColor">@drawable/buttonBabyBlue</item>
<item name="android:textStyle">bold</item>
<item name="android:textSize">@dimen/second_text_size</item>
<item name="android:lines">1</item>
<item name="android:background">@drawable/baseGray</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:layout_width">0dip</item>
<item name="android:layout_weight">8.5</item>
<item name="android:gravity">bottom|left</item>
<item name="android:layout_gravity">bottom</item>
</style>
Run Code Online (Sandbox Code Playgroud)
当我按下按钮,使视图有阴影
text.setShadowLayer(GLOW_RADIUS, GLOW_DX, GLOW_DY, R.drawable.buttonBabyBlue);
text.setTextColor(R.drawable.baseGray);
Run Code Online (Sandbox Code Playgroud)
然后删除阴影
text.setShadowLayer(0, 0, 0, 0);
text.setTextColor(R.drawable.buttonBabyBlue);
Run Code Online (Sandbox Code Playgroud)
这很烦人我有图片显示和上传他们但他们不会让我显示它们,因为害怕垃圾邮件
调用textview.setShadowLayer(0,0,0,0)清除阴影层.
类中有一个clearShadowLayer()方法Paint,但在内部也调用了setShadowLayer所有零参数.所以看起来这对你不起作用.
我能想到的另一种方法是重写onDraw方法.维护TextPaint使用阴影参数设置的对象.
@Override
void setShadowLayer(.....) { // do not call super
paintWithShadowLayer.setShadowLayer(....); // the other with shadow layer set
}
@Override
void onDraw(Canvas canvas) {
super.onDraw(canvas);
...
if (bToggleON) {
canvas.drawText(text, index, count, x, y, paintWithShadowLayer);
} else {
canvas.drawText(text, index, count, x, y, getPaint());
}
...
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4802 次 |
| 最近记录: |