我想达到类似于此处所示的效果:
https://codepen.io/martinwolf/pen/DkKgJ

渲染文本的屏幕截图:
android - Android EditText淡出溢出文本-LMLPHP

我尝试了以下方法:

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


这对我有用

09-10 02:35
查看更多