TextView与背景和透明文本

时间:2013-10-28 09:16:51

标签: android android-layout

我正在尝试执行以下操作:

enter image description here

目前,我正在尝试使用NativeAndroid。

但是,我可以使用 HTML和css。

执行此操作

如您所见,它类似于:

  • 持有蓝色(可能是任何其他颜色甚至图像)背景
  • 带有(透明??)颜色的TextView
  • 带灰色背景的TextView

但是,如果我将背景设置为灰色并将文本设置为透明,则文本会“消失”并且全部显示为灰色。

这是我的尝试(原生Android):

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#ff000000" >
<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="#ffcecece"
    android:padding="5dp"
    android:text="@string/hello_world"
    android:textColor="#00ffffff" />
</RelativeLayout>

然而,它显示以下内容:

enter image description here

有文字,因为它是透明的,所以没有显示。

所以我的问题是:

  • 我怎样才能做到这一点?
  • 帆布?跨度?我不习惯这些方法,所以一些指示将不胜感激。

谢谢!

编辑: 蓝色背景必须是动态的,可能是图片!

3 个答案:

答案 0 :(得分:3)

你可以使用Canvas:

Bitmap bmOverlay = Bitmap.createBitmap(1200, 1200, Bitmap.Config.ARGB_8888);//bMap.getConfig());

Canvas canvas = new Canvas(bmOverlay);
canvas.drawColor(Color.LTGRAY);
Paint paint = new Paint();

Paint mPaintText = new Paint(Paint.ANTI_ALIAS_FLAG);
mPaintText.setStrokeWidth(3);
mPaintText.setStyle(Paint.Style.FILL_AND_STROKE);
mPaintText.setColor(Color.TRANSPARENT);
mPaintText.setTextSize(50f);
mPaintText.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC));    
canvas.drawText("Your TExt", x, y, mPaintText);

答案 1 :(得分:1)

textcolor设置为您的布局backgound颜色,如浅蓝天..

答案 2 :(得分:0)

您无法在Xml布局中实现此功能,您需要为布局背景和文本设置相同的颜色,如下所示:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#0011ff" >
<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="#ffcecece"
    android:padding="5dp"
    android:text="@string/hello_world"
    android:textColor="#0011ff" />
</RelativeLayout>