15

私は TextView を動的に作成し、ここに投稿された方法を使用してそれに影を設定しています: Android - テキストに影を付けますか?

しかし、うまくいきません。スタイルは適用されますが (textSize アイテムをテストに入れると機能します)、影は表示されません。

テキストビュー:

TextView tv = new TextView(this);
RelativeLayout.LayoutParams layoutPars = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
layoutPars.addRule(RelativeLayout.CENTER_VERTICAL); 
tv.setTextColor(0xffffffff);
tv.setText(label);
tv.setTextSize(11);
tv.setTextAppearance(getApplicationContext(), R.style.BlackShadow);

スタイル:

<style name="BlackShadow">  
    <item name="android:shadowColor">#ff000000</item>
    <item name="android:shadowRadius">1</item>
    <item name="android:shadowDx">-1</item>
    <item name="android:shadowDy">-1</item>
    <item name="android:textSize">26dip</item>
</style>

私は何を間違っていますか?

4

1 に答える 1

52

これを試して:

tv.setShadowLayer(1.5f, -1, 1, Color.LTGRAY);

ドキュメントから

setShadowLayer(float radius, float dx, float dy, int shadowColor)

これにより、指定されたオフセットと色、およびぼかし半径を使用して、メイン レイヤーの下にシャドウ レイヤーが描画されます。

詳細については、http://developer.android.com/reference/android/graphics/Paint.html#setShadowLayer%28float,%20float,%20float,%20int%29 を確認してください

于 2012-08-08T09:58:34.220 に答える