自定义RelativeLayout,在动画中有两个视图

时间:2016-03-04 19:36:21

标签: android android-layout animation

我无法找到关于这种情况的任何地方。 我在RelativeLayout中有两个视图。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/transparent">
<View
    android:id="@+id/view_mask1"
    android:layout_width="50dp"
    android:layout_height="50dp"
    android:background="@drawable/tutrial_icon_bg_circle"
    android:layout_centerInParent="true"
    android:visibility="visible"/>
<View
    android:id="@+id/view_mask"
    android:layout_width="30dp"
    android:layout_height="30dp"
    android:background="@drawable/tutorial_icon_bg"
    android:layout_centerInParent="true"
    android:visibility="visible"/>
 </RelativeLayout>

此外,我在这个视图上有两个不同的动画。当我在活动中设置动画时,动画效果很好。 现在是问题的时候了,我想在我想要的地方使用这个视图。因为我不想一次又一次地设置所有动画。我想在这样的适配器中使用;

View v = inflater.inflate(R.layout.animation_layout, null);
LinearLayout ll =(LinearLayout) findViewById(R.id.layout);
ll.addView(v);

所以,我想我必须创建一个customView但是如何?

1 个答案:

答案 0 :(得分:0)

没有人回答,但我自己找到了解决办法。 我创建了一个扩展View的类。

public class TutorialIcon extends View {

View maskView, maskView1, v;
public TutorialIcon(Context context) {
    super(context);
    v = LayoutInflater.from(context).inflate(R.layout.tutorial_icon, null);
    this.maskView = v.findViewById(R.id.view_mask);
    this.maskView1 = v.findViewById(R.id.view_mask1);
}

public View view(){
    createRecursiveAnimations();
    return v;
}
private void createRecursiveAnimations1() {
//animation1
}
private void createRecursiveAnimations2() {
//animation2
}
}

tutorial_icon.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/transparent">
<View
    android:id="@+id/view_mask1"
    android:layout_width="50dp"
    android:layout_height="50dp"
    android:background="@drawable/tutrial_icon_bg_circle"
    android:layout_centerInParent="true"
    android:visibility="visible" />
<View
    android:id="@+id/view_mask"
    android:layout_width="30dp"
    android:layout_height="30dp"
    android:background="@drawable/tutorial_icon_bg"
    android:layout_centerInParent="true"
    android:visibility="visible"/>
</RelativeLayout>

最后,我已将动画视图添加到列表视图适配器中。

Adapter.java

@Override
public View getView(final int position, View convertView, ViewGroup parent) {
convertView = null;
if (convertView == null) {
        convertView = inflater.inflate(R.layout.cell_catalog_tags, null);
        Relativelayout layout = (RelativeLayout) convertView.findViewById(R.id.layout);
            TutorialIcon t = new TutorialIcon(context);
            layout.addView(t.view());
    }
}

希望这有助于某人。