我正在尝试使用以下代码在某些 Android 文本视图上创建旧式 8 位效果:
private static Shader InversetextShader = new LinearGradient(0, 0, 0, 22,
new int[] { Color.RED, Color.BLUE },
new float[] { 0, 1 }, TileMode.CLAMP);
TextView t1 = (TextView) findViewById(R.id.textView2);
t1.setText(getApplicationContext().getString(R.string.app_name_mele));
t1.getPaint().setShader(InversetextShader);
t1.setTypeface(font);
t1.setShadowLayer(4f, 2.0f, 2.0f, Color.BLACK);
该代码在 Android < 3 上运行,但自从我开始以 ICS(API 级别 14)为目标时就给我带来了问题。
TextView 非常简单:
<TextView
android:id="@+id/textViewRecords1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:gravity="center_horizontal"
android:textAppearance="?android:attr/textAppearanceLarge" >
</TextView>
这是显示缺陷的图像,一些不应该存在的黑线:
(对不起,我不能发布图片)
http://i.stack.imgur.com/xRWOM.png
如果我关闭显示器(即锁定手机)然后再次打开,缺陷就会消失。我已经尝试调用 .invalidate() 并再次绘制视图,但没有成功。