我无法找到关于这种情况的任何地方。 我在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但是如何?
答案 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());
}
}
希望这有助于某人。