2016-06-11 2 views
0

몇 가지 속성으로 버튼을 만들고 싶습니다.프로그래밍 방식으로 모든 폼 단추를 만드는 방법은 무엇입니까?

  1. 모든 형태, 색상 및 배치를 가질 수 있습니다.
  2. 이러한 매개 변수는 터치
  3. 내가 Canvas, DrawonTouchEvent를 사용하려고

에 색상을 변경할 수 있습니다 응용 프로그램

  • 버튼에서 변경할 수 있습니다. 그러나 더 간단하고 빠른 접근이 존재합니까? 도움이 필요해. 고맙습니다!

  • 답변

    0

    아래와 같은 xml 파일을 사용하여 버튼의 상태를 만들 수 있습니다.

    이 xml 파일을 프로젝트의 드로어 블 폴더에 복사하면됩니다 (예 : custom_button.xml).

    <?xml version="1.0" encoding="utf-8"?> 
    <selector 
    xmlns:android="http://schemas.android.com/apk/res/android"> 
    
    <item android:state_pressed="true" > 
        <shape android:shape="rectangle"> 
         <solid 
          android:color="#00ff00" /> 
         <stroke 
          android:width="5dp" 
          android:color="#ff0000" 
          android:dashWidth="3dp" 
          android:dashGap="2dp" /> 
        </shape> 
    </item> 
    
    <item android:state_focused="true" > 
        <shape> 
         <gradient 
          android:endColor="#ffffff" 
          android:centerColor="#ffffff" 
          android:startColor="#ffffff" 
          android:angle="270" /> 
         <stroke 
          android:width="3dp" 
          android:color="#00ff00" /> 
         <corners 
          android:radius="5dp" /> 
         <padding 
          android:left="10dp" 
          android:top="10dp" 
          android:right="10dp" 
          android:bottom="10dp" /> 
        </shape> 
    </item> 
    
    <item>   
        <shape> 
         <gradient 
          android:endColor="#ffffff" 
          android:centerColor="#ffffff" 
          android:startColor="#ffffff" 
          android:angle="270" /> 
         <stroke 
          android:width="5dp" 
          android:color="#00ff00" /> 
         <corners 
          android:radius="5dp" /> 
        </shape> 
    </item> 
    

    과에서 onCreate 방법

    LinearLayout layout = (LinearLayout) findViewById(R.id.linear_layout_tags); 
    
         //set the properties for button 
         Button btnTag = new Button(this); 
         btnTag.setLayoutParams(new ActionBar.LayoutParams(ActionBar.LayoutParams.WRAP_CONTENT, ActionBar.LayoutParams.WRAP_CONTENT)); 
         btnTag.setText("Button"); 
         btnTag.setId(some_random_id); 
         btnTag.setBackground(getResources().getDrawable(R.drawable.custom_button)); 
    
    +0

    코드를 다음과 같이 레이아웃에서 참조 감사합니다,하지만 난 너무 양식을 변경하고 싶습니다. 예를 들어, 피자 파트에서 스타로. –

    관련 문제