2014-11-06 3 views
0

그래서, 나는 FrameLayout이있다 : 나도 몰라 무엇FrameLayouts은 레이어 목록 유사한 사용

<FrameLayout 
     android:id="@+id/btn" 
     android:layout_width="50dp" 
     android:layout_height="50dp" > 

     <ImageButton 
      android:id="@+id/b" 
      android:layout_width="50dp" 
      android:layout_height="50dp" 
      android:background="@drawable/background" /> 
     <ImageButton 
      android:id="@+id/bbtn" 
      android:layout_width="50dp" 
      android:layout_height="50dp" 
      android:background="@drawable/testcontur1" />   
    </FrameLayout> 

그것이 층 - 유사 "행동"때문에 이렇게 사이에이 FrameLayout이를 넣어 것입니다 올라가있다 든가 하면요 레이어 목록의 예는 다음과 같다 :

<?xml version="1.0" encoding="utf-8"?> 
     <layer-list xmlns:android="http://schemas.android.com/apk/res/android" > 

     <item android:id="@+id/backgr"> 
      <bitmap android:gravity="center" android:src="@drawable/background" /> 
     </item> 

     <item android:id="@+id/contur"> 
      <bitmap android:gravity="center" android:src="@drawable/testcontur1" /> 
     </item> 

</layer-list> 

그래서, 기본적으로 내가해야 할 일을 어떻게 든 첫 bitmap.This 하나에 자바에 대한 참조를 얻을 수 있습니다 :

<bitmap android:gravity="center" android:src="@drawable/background" /> 

그러나 나는 이것을 어쨌든 관리 할 수 ​​없다. 그래서이 방법을 구현하는 유일한 방법은 frameLayout을 사용하고 내부에 imagebutton (또는 imageview, 무엇이든)을 사용하여 ID로 참조를 얻는 것이다.

나는이 사람을 도움이 의심하지 않지만, 나 또한 내가 이걸 이런 식으로 뭔가를 할 수 있도록하기 위해 비트 맵 /하여 ImageButton에 대한 참조를해야 할 필요가 쓸 것이다 :

reference.getBackground().mutate().setColorFilter(Color.RED ,PorterDuff.Mode.Multiply); 

어떤 도움 나에 대한 생각 아침 일찍부터 아무 것도 얻을 수 없기 때문에 그걸 얻기 위해 노력했기 때문에 이것은 좋을 것입니다.

답변

0

레이어 드로어 블에 대한 참조를 얻을 수 있습니다. 그런 다음

public Drawable getDrawable (int index) 

메서드를 사용하여 필요한 특정 레이어에 대한 참조를 가져옵니다. 그 후 원하는대로 계속 진행할 수 있습니다.

http://developer.android.com/reference/android/graphics/drawable/LayerDrawable.html#getDrawable(int)

나는 이것을 시도하지 않은,하지만 난 그것을 작동합니다 확신합니다.

관련 문제