与背景颜色和透明文本的button

我有一些背景图片的布局,并有一个button。 button的背景颜色是白色。 现在我想写一个文本,使文本显示button背后的任何内容(如透明文本)。 现在,显然,如果我使文本颜色透明,文本将消失,我将看到一个没有文字的白色button。 这个怎么做?

截图:

带有透明文本的按钮

Solutions Collecting From Web of "与背景颜色和透明文本的button"

有两种方法:(1)不精确的解决scheme,因为文本alignment应该用手编码,但是:

@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button view1 = new Button(this); RelativeLayout layout1 = (RelativeLayout) findViewById(R.id.layout1); layout1.setBackground(getResources().getDrawable(R.drawable.choose_background)); layout1.addView(view1); Bitmap mainImage = Bitmap.createBitmap(500, 500, Bitmap.Config.ARGB_8888); { //creating image is not necessary, more important is ability to grab the bitmap. Canvas canvas = new Canvas(mainImage); canvas.drawColor(Color.WHITE); view1.setBackground(new BitmapDrawable(getResources(), mainImage)); } { Canvas canvas = new Canvas(mainImage); //most interesting part: Paint eraserPaint = new Paint(); eraserPaint.setAlpha(0); //this eraserPaint.setTextSize(200); eraserPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.DST_IN)); //and this canvas.drawText("some", 10, 150, eraserPaint); } } 

eraserPaint的想法是从这里删除位图部分使用PorterDuff模式 ,在这里Android如何应用蒙版ImageView?

在activity_main.xml中一切都是默认的:

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/layout1" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.runup.myapplication2.app.MainActivity"> 

结果是:

在这里输入图像说明

(2)第二种方法是将此行为添加到类中以便在xml中使用它。 https://github.com/togramago/ClearTextViewProject – 带有示例的库项目。 您可以添加为一个库或只复制ClearTextView类到您的项目(因为它是一个扩展的TextView没有XML资源)。 适用于configuration更改和dynamic文本和/或背景更改。

肖像样本的结果: 在这里输入图像说明

和在景观: 在这里输入图像说明