分享

【Android 开发】:Android中普通按钮的使用方法

 quasiceo 2014-04-12


   

       
        分类:
            【Android 开发】
       

    2013-05-28 23:40
    1113人阅读
    评论(0)
    收藏
    举报
   



   


Button控件的基本用法和TextView、EditText相似,最常用的是按钮单击事件。



案例一:按钮的焦点变化



1. 主要代码



 ......
        private int value = 1; // 用于改变按钮的大小
 ......
        commonButton.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                Button button = (Button) v;
                if (value == 1
                        && button.getWidth() == getWindowManager().getDefaultDisplay().getWidth()) {
                    value = -1;
                } else if (value == -1 && button.getWidth() < 100) {
                    value = 1;
                }
                button.setWidth(button.getWidth() + (int) (button.getWidth() * 0.1) * value);
                button.setHeight(button.getHeight() + (int) (button.getWidth() * 0.1) * value);

            }
        });

        imageButton.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub

            }
        });
        /*
         * 表示当前触摸屏触摸的时候会回调该方法 MotionEvent表示移动的动作,有触摸笔,手势,滚动球等
         * getAction():表示计算按下点与滑动后的点的之间的距离
         */

        imageButton.setOnTouchListener(new View.OnTouchListener() {

            @Override
            public boolean onTouch(View v, MotionEvent event) {
                if (event.getAction() == MotionEvent.ACTION_UP) {
                    v.setBackgroundResource(R.drawable.button1);

                } else if (event.getAction() == MotionEvent.ACTION_DOWN) {
                    v.setBackgroundResource(R.drawable.button2);
                }
                return false;
            }
        });
        // 表示当前这个控件的焦点发生变化的时候就触发它。
        imageButton.setOnFocusChangeListener(new View.OnFocusChangeListener() {

            @Override
            public void onFocusChange(View v, boolean hasFocus) {
                if (hasFocus) {
                    imageButton.setBackgroundResource(R.drawable.button2);
                } else {
                    imageButton.setBackgroundResource(R.drawable.button1);
                }
                // TODO Auto-generated method stub

            }
        });

        imageButton.setOnKeyListener(new View.OnKeyListener() {

            @Override
            public boolean onKey(View v, int keyCode, KeyEvent event) {

                /*
                 * KeyEvent表示按下的动作,getAction()表示获取用户的动作方法 查看android api 文档
                 * ACTION_UP 于 ACTION_DOWN 表示上下键
                 */
                // TODO Auto-generated method stub
                if (KeyEvent.ACTION_DOWN == event.getAction()) {
                    v.setBackgroundResource(R.drawable.button3);
                } else if (KeyEvent.ACTION_UP == event.getAction()) {
                    v.setBackgroundResource(R.drawable.button2);
                }
                return false;
            }
        });


2. Demo执行结果






案例二:图文混排的按钮



1. 主要代码


        SpannableString spannableStringLeft = new SpannableString("Left");
        Bitmap bitmapLeft = BitmapFactory.decodeResource(getResources(), R.drawable.image_left);
        ImageSpan imageSpanLeft = new ImageSpan(bitmapLeft, DynamicDrawableSpan.ALIGN_BOTTOM);
        //指定当前这个位图位于按钮的低端
        //0-4 表示把图片放在从0到4这些字符上面。
        spannableStringLeft.setSpan(imageSpanLeft, 0, 4, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
        
        SpannableString spannableStringRight = new SpannableString("Right");
        Bitmap bitmapRight = BitmapFactory.decodeResource(getResources(), R.drawable.image_right);
        ImageSpan imageSpanRight = new ImageSpan(bitmapRight);
        
        spannableStringRight.setSpan(imageSpanRight, 0, 5, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
        button.append(spannableStringLeft);
        button.append("我的按钮");
        button.append(spannableStringRight);


    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="120dp"
        android:orientation="horizontal" >

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:drawableTop="@drawable/star"
            android:text="按钮一" />

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:drawablePadding="30dp"
            android:drawableTop="@drawable/star"
            android:text="按钮二" />

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:drawableLeft="@drawable/star"
            android:text="按钮三" />

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:drawablePadding="30dp"
            android:drawableRight="@drawable/star"
            android:text="按钮四" />
    </LinearLayout>

    <Button
        android:id="@+id/button"
        android:layout_width="200dp"
        android:layout_height="200dp"
        android:layout_marginTop="10dp"/>


2. Demo效果







































更多
0





    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多