2011-10-29 3 views
2

나는이 겉으로보기에는 간단한 문제에 대한 답변을 몇 시간 봤습니다.레이어 목록의 드로어 블에있는 이미지 버튼?

기본적으로 레이어에 특정 드로어 블을 만드는 방법은 이미지 버튼입니까?

Eclipse에서이 코드를 아직 오류로 표시하지 않습니다. 실행될 때 강제 종료됩니다. 내가 뭘 놓치고 있니? 또한

-

나는 그들이 레이어 목록에있을 경우에도 자원을 참조하는 findViewById를 사용하십니까?

XML 파일의 android:iditem 태그 또는 bitmap 태그에 속해 있습니까?

편집 :이 코드는 제가 직접 문제를 설명하기 위해 정리 한 것입니다. 마지막 레이어 드로어 블을 활성 버튼으로 만들려고합니다. 예를 들어 UI의 경우 한 묶음이나 그래픽을 서로 겹쳐 놓고 있습니다. 마지막 두 레이어는 활성화하려는 버튼입니다. 그게 가능하니? 아니면 내가하려는 일을하는 더 좋은 방법이 있을까요?

감사합니다.


layers.xml :

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item> 
     <bitmap android:src="@drawable/android_red" 
     android:gravity="center" /> 
    </item> 
    <item android:top="10dp" android:left="10dp"> 
     <bitmap android:src="@drawable/android_green" 
     android:gravity="center" /> 
    </item> 
    <item android:id="@+id/blue_button" 
     android:top="20dp" android:left="20dp"> 
     <bitmap android:src="@drawable/android_blue" 
     android:gravity="center" /> 
    </item> 
</layer-list> 

main.xml에 :

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" > 

    <ImageView 
     android:layout_height="wrap_content" 
     android:layout_width="wrap_content" 
     android:src="@drawable/layers" /> 

</LinearLayout> 

활동 :

public class LayoutTestActivity extends Activity implements OnClickListener { 

     protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     requestWindowFeature(Window.FEATURE_NO_TITLE); 
     getWindow().setFlags(WindowManager.LayoutParams.FILL_PARENT,WindowManager.LayoutParams.FLAG_FULLSCREEN); 

     setContentView(R.layout.main); 

     ImageButton imgStartButton = (ImageButton) findViewById(R.id.blue_button); 
     imgStartButton.setOnClickListener(this); 


     } 

    public void onClick(View v) { 


    } 
} 

답변

1

ID를 도면층 드로어 블에 표시하지 않고 이미지 뷰에 배치합니다.

<ImageView 
    android:layout_height="wrap_content" 
    android:layout_width="wrap_content" 
    android:src="@drawable/layers" 
    android:id="@+id/blue_button"/> 

ImageView imgStartButton = (ImageView) findViewById(R.id.blue_button); 
imgStartButton.setOnClickListener(this); 
imgStartButton.setBackgroundResource(R.drawable.layers); 
+0

지금 이해가 사용하는 당김에 액세스 할 수 있습니다. 고맙습니다. – ShadowGod

+0

이것은 진행이지만 정확하게 원하는 방식으로 작동하지 않습니다. onClickListener를 전체보기로 설정하면보기의 아무 곳이나 클릭하여 클릭을 등록 할 수 있습니다. 레이어의 드로어 블 중 하나로 제한하고 싶습니다. 이해가 되나요? 상반기에 몇 개의 그래픽을 쌓아 놓고 맨 위에있는 마지막 레이어가 버튼이라면, 마지막 레이어 이미지를 활성 버튼으로 만들고 싶습니다. – ShadowGod

+0

clicl 리스너는 드로어 블이 아닌 뷰에 제공됩니다. 귀하의 요구 사항에 따르면, 당신은 서로의 상단에 스택을 framelayout을 사용해야합니다. 각 레이어를 각보기로 추가하십시오. 적절한보기에 시계 수신기를 추가하십시오. – blessenm

관련 문제