我想达到类似于此处所示的效果:
https://codepen.io/martinwolf/pen/DkKgJ
渲染文本的屏幕截图:
我尝试了以下方法:
<FrameLayout
android:id="@+id/field_container"
android:layout_width="match_parent"
android:layout_height="match_parent">
<EditText
android:id="@+id/field"
android:layout_width="match_parent"
android:layout_height="20dp"
android:text="This is a very long headline, maybe even too long for this box."/>
<View
android:layout_gravity="right"
android:layout_width="30dp"
android:layout_height="match_parent"
android:background="@drawable/bg_gradient_to_white"/>
</FrameLayout>
bg_gradient_to_white
是从透明(#00000000)到纯白色(#FFFFFFFF)的渐变。但是,这似乎不起作用,而且我完全没有注意到右边缘已消失。另外,如果EditText允许显示椭圆,我也可以。对于上面的示例,我将是“这是一个非常长的标题,也许...”。任何帮助将不胜感激!
最佳答案
如果要以编程方式执行此操作,请尝试以下操作:
mNameTextView.measure(0, 0);
Shader textShader=new LinearGradient(0, 0, mNameTextView.getMeasuredWidth(), 0,
new int[]{Color.BLACK, Color.WHITE},
new float[]{0, 1}, Shader.TileMode.CLAMP);
mNameTextView.getPaint().setShader(textShader);
这对我有用