【Android(安卓)开发】:Android中普通按钮的使用方法
16lz
2021-01-26
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效果
更多相关文章
- Android(安卓)播放 Gif 图片控件
- 自定义控件--带动画的CheckBox
- Android(安卓)常用控件自定义样式RadioButton、CheckBox、Progre
- Android(安卓)View 拖动&插入
- ScrollView只能有一个子控件
- Android(安卓)CoordinatorLayout 实战案例学习《二》
- android 布局之RelativeLayout(相对布局)
- android自定义title的方法
- android 设置控件的字体