textView中的drop shadow和embossMaskFilter之间的冲突:文本不可见

时间:2012-12-25 03:44:16

标签: android android-layout

我有一个textView:

<TextView
      android:id="@+id/textAfter"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="example string"
      android:textColor="@android:color/transparent"
      android:textSize="40sp"
      />

稍后将以编程方式以一系列方式修改此textView:

imageView_Source = (TextView)findViewById(R.id.source);
textAfter = (TextView)findViewById(R.id.textAfter);

X_FONT = Typeface.createFromAsset(getResources().getAssets(), "ROCKB.TTF");
//textAfter = new TextView(getApplicationContext());
textAfter.setTypeface(X_FONT);
localTextPaint = textAfter.getPaint();
localTextPaint.setTextScaleX(1f);     
localTextPaint.setFakeBoldText(true);
localTextPaint.setAntiAlias(true);
localTextPaint.setSubpixelText(true);
localTextPaint.setMaskFilter(new EmbossMaskFilter(new float[] { 1, 1, 1 },ambientValue, specularValue, blurRadiusValue));

public void onClick(View v) {
      //textAfter.invalidate();
      localTextPaint.setMaskFilter(null);
      textAfter.invalidate();
      localTextPaint.setMaskFilter(new EmbossMaskFilter(new float[] { 1, 1, 1 },ambientValue, specularValue, blurRadiusValue));
      textAfter.invalidate();

}};

onClick纯粹是出于测试目的。但是,如果我添加以下内容:

 android:shadowColor="#000000"
 android:shadowDx="3.0"
 android:shadowDy="3.0"
 android:shadowRadius="1.0"

文本变得完全不可见。虽然阴影和蒙版在单独应用时都有效,但在同时应用时都不起作用(文本不会直接显示)。我猜这也与应用于阴影的蒙版有关,但我对Android编码很新,所以我真的不知道是什么导致了这个或如何解决它。

提前致谢。

3 个答案:

答案 0 :(得分:1)

我遇到了同样的事情,我意识到这是由于硬件加速。

要禁用特定视图的硬件加速,请执行以下操作:

<TextView>.setLayerType(View.LAYER_TYPE_SOFTWARE, null);

答案 1 :(得分:0)

我的项目中的同样问题。我能够重现这种行为。 尝试了一些事情,没有任何效果。 我宁愿选择* .9.png。

如果你不想使用png,这种方法看起来很有意思http://qwerjk.com/magic-text

答案 2 :(得分:0)

我正在使用相同对象的简化透明副本,仅为其提供阴影,而前景中的原始照片设置为浮雕。