2012-05-01 11 views
4

、私は次のコードを使用して、いくつかのAndroidのテキストビューの古いスタイルの8ビットの効果を作成しようとしています:アンドロイド:.setShader()を使用して破損したTextViewには

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> 

これは欠陥を示す画像、がありshould'tいくつかの黒い線であります)

http://i.stack.imgur.com/xRWOM.png

私は(IE)の携帯電話をロックOFF表示シャットダウンしてからON再び、欠陥が消える場合。私はもう一度.invalidate()とDrawを呼び出してみましたが、成功しませんでした。

答えて

2

UIツールキットOpenGLレンダラのバグのような音です。これはICSのどのバージョンで起こりますか?問題を再現し、それがまだ存在する場合に修正するために使用できるAPKがありますか? 回避策として、あなたはソフトウェアレンダリングを強制するために、あなたのTextViewsに

yourLayout.setLayerType(View.LAYER_TYPE_SOFTWARE,yourLayout.getPaint); 

を使用することができます。

+0

回避策が働いています、ありがとうございます! 私はバージョン4.0.4でのみ私のネクサスS上のエラーを得ました。エミュレータが動作しています。 APKのリンク先:[link](https://play.google.com/store/apps/details?id=org.icecuber.amazza) – Shine

関連する問題