zoukankan      html  css  js  c++  java
  • Button 自定义图片,代码绘制样式,添加音效的方法


    Button自己在xml文件中绑定监听器

    <!-- 设定onclick属性,然后在activity中定义相应的方法 -->
    	<!-- 通过xml布局中通过button的android:onClick属性指定一个方法,
    	以替代在activity中为button设置OnClickListener。 -->
        <Button
            android:id="@+id/my_button_id"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:text="Button自己绑定点击事件" 
            android:layout_marginTop="16dp"
            android:onClick="buttonListener"/>

    代码中写一个方法:

    	/**当用户点击按钮时,Android系统调用buttonListener(View)方法。
    	 * 为了正确执行,这个方法必须是public并且仅接受一个View类型的参数
    	 * @param v button传过来的view对象
    	 * 需要注意的是这个方法必须符合三个条件:
      		1.public
      		2.返回void
      		3.只有一个参数View,这个View就是被点击的这个控件。
    	 */
    	public void buttonListener(View v){
    		switch (v.getId()) {
    		case R.id.my_button_id:
    			Toast.makeText(getApplicationContext(), "button自己绑定一个触发函数", 0).show();
    			break;
    
    		default:
    			break;
    		}
    	}


    自定义点击,按下的样式

     <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout_marginTop="16dp"
            android:background="@drawable/button_selector"
            android:text="自定义按钮样式" />
    button_selector.xml

    <?xml version="1.0" encoding="utf-8"?> 
    <selector xmlns:android="http://schemas.android.com/apk/res/android"> 
        <item android:state_pressed="true" 
            android:drawable="@drawable/login_button2" /> 
        <item android:state_focused="true" 
            android:drawable="@drawable/login_button2" /> 
        <item android:drawable="@drawable/login_button" /> 
    </selector> 


    用代码来设定按钮的图片样式

    <Button
            android:id="@+id/style_button_id"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout_marginTop="16dp"
            android:text="用代码动态设定点击样式" />

    activity中里:

    Button styleBt = (Button)findViewById(R.id.style_button_id);
    		styleBt.setBackgroundColor(Color.parseColor("#b9e3d9")); 
            styleBt.setOnTouchListener(new OnTouchListener() {
    			@Override
    			public boolean onTouch(View v, MotionEvent event) {
    				// TODO 自动生成的方法存根
    				if(event.getAction()==MotionEvent.ACTION_DOWN){  
    		        	//v.setBackgroundResource(R.drawable.bar_color); 
    		        	v.setBackgroundColor(Color.WHITE); 
    	            }
    				else if(event.getAction()==MotionEvent.ACTION_UP){  
    			        v.setBackgroundColor(Color.parseColor("#b9e3d9")); 
    	            }  
    				return false;
    			}
    		});

    用shape画按钮
    <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:background="@drawable/shape"
            android:layout_marginTop="16dp"
            android:text="用shape画的圆角按钮" />

    shape.xml

    <?xml version="1.0" encoding="UTF-8"?> 
    <shape 
        xmlns:android="http://schemas.android.com/apk/res/android" 
        android:shape="rectangle"> 
        <!-- 填充的颜色 --> 
        <solid android:color="#FFFFFF" /> 
        <!-- 设置按钮的四个角为弧形 --> 
        <!-- android:radius 弧形的半径 --> 
        <corners android:radius="5dip" /> 
          
    	<!-- padding:Button里面的文字与Button边界的间隔 --> 
    	<padding 
    	   android:left="10dp" 
    	   android:top="10dp" 
    	   android:right="10dp" 
    	   android:bottom="10dp" /> 
    </shape>
    


    用style来设定样式

            <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:background="@drawable/style_selector"
            android:layout_marginTop="16dp"
            android:text="用selector设计的按钮样式" />

    style_selector.xml

    <?xml version="1.0" encoding="utf-8"?> 
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
         
        <item android:state_pressed="true"> 
            <shape> 
                <gradient android:startColor="#0d76e1" android:endColor="#0d76e1" 
                    android:angle="270" /> 
                <stroke android:width="1dip" android:color="#f403c9" /> 
                <corners android:radius="2dp" /> 
                <padding android:left="10dp" android:top="10dp" 
                    android:right="10dp" android:bottom="10dp" /> 
            </shape> 
        </item> 
      
        <item android:state_focused="true"> 
            <shape> 
                <gradient android:startColor="#ffc2b7" android:endColor="#ffc2b7" 
                    android:angle="270" /> 
                <stroke android:width="1dip" android:color="#f403c9" /> 
                <corners android:radius="2dp" /> 
                <padding android:left="10dp" android:top="10dp" 
                    android:right="10dp" android:bottom="10dp" /> 
            </shape> 
        </item> 
      
        <item> 
            <shape> 
                <gradient android:startColor="#CEEDEB" android:endColor="#ffffff" 
                    android:angle="-90" /> 
                <stroke android:width="1dip" android:color="#f403c9" /> 
                <corners android:radius="5dip" /> 
                <padding android:left="10dp" android:top="10dp" 
                    android:right="10dp" android:bottom="10dp" /> 
            </shape> 
        </item> 
    </selector>  
    
    <!-- 
    gradient 主体渐变 
    startColor开始颜色,
    endColor结束颜色 ,
    angle开始渐变的角度(值只能为90的倍数,0时为左到右渐变,90时为下到上渐变,依次逆时针类推)
    stroke 边框 width 边框宽度,color 边框颜色
    corners 圆角 radius 半径,0为直角
    padding text值的相对位置 -->

    有音效的按钮

            <Button
                android:id="@+id/music_button_id"
                android:layout_gravity="center"
                android:layout_marginTop="16dp"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="有音效的按钮" />
    

    activity中写:

    	private SoundPool sp;//声明一个SoundPool
        private int music;//定义一个整型用load();来设置suondID

     sp= new SoundPool(10, AudioManager.STREAM_SYSTEM, 5);//第一个参数为同时播放数据流的最大个数,第二数据流类型,第三为声音质量
            music = sp.load(this, R.raw.click,1); //把你的声音素材放到res/raw里,第2个参数即为资源文件,第3个为音乐的优先级
            
            Button musicBt = (Button)findViewById(R.id.music_button_id);
            musicBt.setOnClickListener(new OnClickListener() {
    			
    			@Override
    			public void onClick(View v) {
    				// TODO Auto-generated method stub
    				sp.play(music, 1, 1, 0, 0, 1);
    			}
    		});

    源码下载:http://download.csdn.net/detail/shark0017/7592855

  • 相关阅读:
    C语言中scanf函数的实现
    Express中设置cookie,session,token
    ajax2.0提供的FormData
    将json字符串解析为对象的三种方式
    ajax中的跨域问题
    html5中的图片预览
    jQuery中的ajax
    jQuery中的表单序列化
    实现一个瀑布流
    ajax
  • 原文地址:https://www.cnblogs.com/tianzhijiexian/p/3852663.html
Copyright © 2011-2022 走看看