2014-04-06 1 views
4

부모를 프로그래밍 방식으로 채우는 데 하나의 버튼 폭을 만드는 방법은 무엇입니까?부모를 프로그래밍 방식으로 채우기 위해 단일 버튼 너비 만들기

public class TEST_GIFDisplay extends Activity implements View.OnClickListener { 

    SurfaceView sview; 
    GifRun gr = new GifRun(); 
    Button btnBack; 

    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     sview = new SurfaceView(this); 
     sview.setZOrderOnTop(true); 

     gr.LoadGiff(sview, this, R.drawable.smiley); 

     LinearLayout linearLayout1 = new LinearLayout(this); 
     linearLayout1.setOrientation(LinearLayout.VERTICAL); 
     linearLayout1.setBackgroundColor(Color.parseColor("#27ae60")); 
     linearLayout1.setLayoutParams(new ViewGroup.LayoutParams(
       ViewGroup.LayoutParams.WRAP_CONTENT, 
       ViewGroup.LayoutParams.WRAP_CONTENT)); 

     LinearLayout linearLayout2 = new LinearLayout(this); 
     linearLayout2.setOrientation(LinearLayout.VERTICAL); 
     linearLayout2.setBackgroundColor(Color.parseColor("#27ae60")); 
     linearLayout2.setLayoutParams(new ViewGroup.LayoutParams(
       ViewGroup.LayoutParams.WRAP_CONTENT, 
       ViewGroup.LayoutParams.WRAP_CONTENT)); 

     LinearLayout.LayoutParams p = new 
     LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT, 
     LinearLayout.LayoutParams.WRAP_CONTENT); 
     p.weight = 1.0f; 

     btnBack = new Button (this); 
     btnBack.setText("Back"); 
     btnBack.setBackgroundColor(Color.parseColor("#f1c40f")); 
     btnBack.setGravity(Gravity.CENTER_HORIZONTAL); 
     btnBack.setLayoutParams(p); 
     btnBack.setOnClickListener(this); 

     linearLayout2.addView(btnBack); 
     linearLayout1.addView(linearLayout2); 
     linearLayout1.addView(sview); 

     setContentView(linearLayout1); 
    } 

    @Override 
    public void onClick(View view) { 
     btnBack = (Button) view; 
     btnBack.setBackgroundColor(Color.parseColor("#2980b9")); //color change 
     new CountDownTimer(100, 50) { 

      @Override 
      public void onTick(long arg0) { 
       // TODO Auto-generated method stub 
      } 

      @Override 
      public void onFinish() { 
       btnBack.setBackgroundColor(Color.parseColor("#f1c40f")); // original color 
      } 
     }.start();//end color changed 

     finish(); 
    } 
} 
+0

어디에서이 버튼을 레이아웃에 추가하고 있습니까? 해당 코드도 게시하십시오. –

+0

@MrSMAK 전체 코드로 코드를 편집했습니다. gif 이미지를 표시하고 이전 화면으로 돌아갈 수있는 활동을 만들고 싶으므로 버튼이 이전 화면으로 이동합니다. – Chrisantics

답변

3

당신은을 추가 ... 나는 이런 짓을했는지하지만 여기에 버튼을 생성의 코드의 일부입니다 ... 그것은 여전히 ​​컨텐츠를 포장 폭 왼쪽 상단에있는 작동하지 수 Button ~ linearLayout2. 당신은 내가 희망이 도움이 MATCH_PARENT

linearLayout2.setLayoutParams(new ViewGroup.LayoutParams(
     ViewGroup.LayoutParams.MATCH_PARENT, 
     ViewGroup.LayoutParams.WRAP_CONTENT)); 

linearLayout2's 폭을 변경해야합니다.

P.S : 타이머를 사용하여 눌려진 단추 효과를 표시하는 대신, 눌림 및 선택 상태에 대해 Button's 선택기를 만들 수 있습니다. 다음을 달성하는 데 도움이되는 기본 링크는 다음과 같습니다. android button selector

+0

감사합니다. @MrSMAK !! 그것은 일했다! 그런데, 공유 한 안드로이드 선택기 링크의 경우 xml 레이아웃 대신 프로그래밍 방식으로 내 버튼을 만든 경우 버튼 선택기 배경에 버튼 배경을 설정하는 방법은 무엇입니까? 덕분에 고급! – Chrisantics

+1

나의 즐거움 :-), 당신은 당신이'drawable' 디렉토리에 selector를 추가하고 다음과 같이 버튼에 설정할 수 있습니다 :'Button b = new Button (Context); b.setBackgroundResource (R.drawable.YO_XML_SELECTOR); ' –

+0

yeap 버튼 색상 변경에 대한 답변을 다시 한 번 감사드립니다 !!! 효과가 있었지만 버튼 대신에 전체 화면이 동일한 버튼 효과로 설정되었습니다. 왜 그런 식으로? 미안 나는 초보자이다! – Chrisantics

관련 문제