【Android】关于Button事件

【Click和LongClick:】

关于单击和长按事件区别:

单机事件,需要按下和放开两个完成才能触发;

长按只需要按住一定的时间后就可以触发。

所以按下一个按钮后,只要不放掉,一定时间后就会触发长按事件,然后放掉,就会触发click单击事件。

示例代码:

Btn1.setOnClickListener(new OnClickListener() {
            
            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                tv1.setText("1111");
            }
        });
        
Btn1.setOnLongClickListener(new OnLongClickListener() {
            
            @Override
            public boolean onLongClick(View arg0) {
                // TODO Auto-generated method stub
                tv2.setText("2222");

                return false;
            }
        });

return false 说明的是,这个按下的事件进行后,还要继续进行接下来的按钮动作,否则就会直接结束这个button的按钮事件。就是说,如果我设置为TRUE,tv1就不会显示1111。

点击前
点击一下
长按后

【图文混排:】

所谓的图文混排就是用SpannableString和ImageSpan两个类来实现这一功能。因为TextView,Button等控件都是无法直接显示图片的。

相关的方法,在之前的EditText中也有类似的介绍。

//步骤1,建立SpannableString对象,作为图像替换的基础
SpannableString str1 = new SpannableString("left");
SpannableString str2 = new SpannableString("button");
SpannableString str3 = new SpannableString("right");

//步骤2,准备好图像资源,这里用的都是Android机器人
Bitmap bitmap1 = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);
Bitmap bitmap2 = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);
        
//步骤3,把SpannableString对象用ImageSpan对象替换
ImageSpan imgLeft = new ImageSpan(bitmap1);
ImageSpan imgRight= new ImageSpan(bitmap2);
str1.setSpan(imgLeft, 0, 4, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
str3.setSpan(imgRight, 0, 5, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

//步骤4,把图像显示在按钮上
Btn1.setText("");
Btn1.append(str1);      
Btn1.append(str2);
Btn1.append(str3);
按钮的图文混排

你可能感兴趣的:(【Android】关于Button事件)