2016-03-04 47 views
0

我找不到这种情况的任何地方。 我在RelativeLayout中有两个视图。自定义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

没有人回答,但我已经找到了我自己的解决方案。 我创建了一个扩展视图的类。

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

希望这可以帮助别人。