【问题标题】:How to create View partially invisible如何创建部分不可见的视图
【发布时间】:2013-01-18 00:08:37
【问题描述】:

我想要实现的是图片中的效果:

所以基本上有一个TextView 会慢慢消失。我不希望将整个View 设置为例如 50% 透明,而是将其左侧部分设置为 0% 透明,并且在右侧平滑地变为 100% 透明。

我知道某些组件(例如ListView)使用此功能,但是否可以以非常简单的方式手动完成?

提前感谢您的回答

【问题讨论】:

  • 创建一个具有从 0 到 100% alpha 的从左到右渐变透明度的视图。使用计时器或使用动画将该视图从右到左移动到 TextView 上。
  • 谢谢西蒙。请把它写成答案。所以我会接受的。

标签: android view


【解决方案1】:

首先,创建一个带有 alpha 渐变的形状。将 XML 放入您的可绘制目录中。我们称它为 gradient_view.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <gradient
        android:angle="90"
        android:startColor="#FFFFFFFF"
        android:endColor="#00FFFFFF"
        android:type="linear"/>
</shape>

现在在 TextView 右侧的布局中创建一个视图。您需要适当地设置宽度和高度,并根据需要在视图中定位(RelativeLayout 与 layout_toTheRightOf 会很好地工作)。

<View android:layout_width="100dp"
    android:layout_height="50dp"
    android:background="@drawable/gradient_view"/>

在代码中的正确位置,为其设置动画。将 -200 更改为您需要的任何值(或者更好的是,找到渐变视图的左 X 并减去 TextView 的左边缘以找到要移动的量)。

TranslationAnimation anim = new TranslateAnimation(0, -200, 0, 0);
anim.setDuration(1000);
myTextView.startAnimation(anim);

http://developer.android.com/reference/android/view/animation/TranslateAnimation.html

还有一些工作要做,但这是您最需要的。

祝你好运

【讨论】:

    猜你喜欢
    • 2012-11-09
    • 1970-01-01
    • 1970-01-01
    • 2022-08-19
    • 1970-01-01
    • 1970-01-01
    • 2019-03-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多