Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/204.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 具有背景和透明文本的文本视图_Android_Android Layout - Fatal编程技术网

Android 具有背景和透明文本的文本视图

Android 具有背景和透明文本的文本视图,android,android-layout,Android,Android Layout,我正在努力做到以下几点: 目前,我正在尝试使用NativeAndroid 但是,我可以用HTML和css来实现这一点。 正如你所看到的,这就像: 带有蓝色(可能是任何其他颜色,甚至是图像)背景的支架 具有(透明??)颜色的文本视图 具有灰色背景的文本视图 但是,如果我将背景设置为灰色,将文本设置为透明,文本将“消失”,并且全部显示为灰色 这是我的尝试(本机Android): 但是,它显示了以下内容: 有文本,但因为它是透明的,所以不显示 所以我的问题是: 我怎样才能做到这一点 帆布

我正在努力做到以下几点:

目前,我正在尝试使用NativeAndroid

但是,我可以用HTML和css来实现这一点。

正如你所看到的,这就像:

  • 带有蓝色(可能是任何其他颜色,甚至是图像)背景的支架
  • 具有(透明??)颜色的文本视图
  • 具有灰色背景的文本视图
但是,如果我将背景设置为灰色,将文本设置为透明,文本将“消失”,并且全部显示为灰色

这是我的尝试(本机Android):


但是,它显示了以下内容:

有文本,但因为它是透明的,所以不显示

所以我的问题是:

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

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

文本颜色设置为布局
背景颜色
浅天蓝色。

在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>

您可以使用画布:

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);

你会有动态背景吗?如果不只是将文本颜色设置为背景色。背景很可能是图像。。。所以,完全是因为我编辑了我的问题。请检查编辑评论。@Reinherd:你在找我的真命天子。@GilVegliach我是*3年前的:不是我需要的。检查我的编辑。你可以在你想要的java类中通过如下设置backgroundResource来实现:mRelativeLayout.setBackgroundResource(R.drawable.imagename);这与形象无关。这是关于将文本设置为透明的,这样你就可以“通过”文本视图来阅读你不明白我想做什么。请再检查一下这个问题。我不习惯使用画布。如何将此代码添加为视图?可以将ImageView添加到布局中,然后:ImageView image=(ImageView)getActivity().findViewById(R.id.imageView1);setImageBitmap(bmOverlay);我已经试过了,如果文本是透明的,那么它是不可见的,所以它不起作用;
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);