android radiobutton下划线,Android:UI控件RatingBar、SeekBar、ProgressBar、RadioGroup、RadioButton、CheckBox、Tex...

public class MainActivity extends Activity implements OnClickListener

{

@Override

protected void onCreate(Bundle savedInstanceState)

{

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

findViewById(R.id.button1).setOnClickListener(this);

findViewById(R.id.button2).setOnClickListener(this);

findViewById(R.id.button3).setOnClickListener(this);

findViewById(R.id.button4).setOnClickListener(this);

findViewById(R.id.button5).setOnClickListener(this);

findViewById(R.id.button6).setOnClickListener(this);

}

@Override

public boolean onCreateOptionsMenu(Menu menu)

{

getMenuInflater().inflate(R.menu.activity_main, menu);

return true;

}

@Override

public void onClick(View v)

{

switch (v.getId())

{

case R.id.button1:

btn1Click();

break;

case R.id.button2:

btn2Click();

break;

case R.id.button3:

btn3Click();

break;

case R.id.button4:

btn4Click();

break;

case R.id.button5:

btn5Click();

break;

case R.id.button6:

btn6Click();

btn7Click();

break;

default:

break;

}

}

private void btn7Click()//评分条

{

RatingBar ratingBar = (RatingBar) findViewById(R.id.ratingBar1);

ratingBar.setNumStars(5);

ratingBar.setRating((float) 0.5);//默认显示的星星数

ratingBar.setOnRatingBarChangeListener(new OnRatingBarChangeListener()

{

@Override

public void onRatingChanged(RatingBar ratingBar, float rating,boolean fromUser)

{

Log.e("RatingBar", "onRatingChanged:" + rating);

}

});

}

private void btn6Click()//可操作进度条

{

SeekBar seekBar= (SeekBar) findViewById(R.id.seekBar1);

seekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener()

{

@Override

public void onStopTrackingTouch(SeekBar seekBar)//停止拖动

{

Log.e("SeekBar", "onStopTrackingTouch");

}

@Override

public void onStartTrackingTouch(SeekBar seekBar)//开始拖动

{

Log.e("SeekBar", "onStartTrackingTouch");

}

@Override//进度改变

public void onProgressChanged(SeekBar seekBar, int progress,boolean fromUser)

{

Log.e("SeekBar", "onProgressChanged");

}

});

}

private int progress = 0;

private void btn5Click()//进度条

{

ProgressBar progressBar = (ProgressBar) findViewById(R.id.progressBar2);

progressBar.setProgress(progress++);

progressBar.setMax(100);

}

private void btn4Click()// 单选按钮

{

RadioGroup radioGroup = (RadioGroup)findViewById(R.id.radioGroup1);

int id = radioGroup.getCheckedRadioButtonId();

RadioButton radioButton = (RadioButton) findViewById(id);

String str = radioButton.getText().toString();

TextView textView = (TextView) findViewById(R.id.textView1);

switch (id)

{

case R.id.radio0:

textView.setText(str);

break;

case R.id.radio1:

textView.setText(str);

break;

case R.id.radio2:

textView.setText(str);

break;

default:

break;

}

}

private void btn3Click()//设置圆形进度条消失(不占位置)

{

findViewById(R.id.progressBar1).setVisibility(View.GONE);

}

private void btn2Click()//设置圆形进度条为隐形(原位置空白)

{

findViewById(R.id.progressBar1).setVisibility(View.INVISIBLE);

}

private void btn1Click()//复选框

{

CheckBox checkBox1 = (CheckBox) findViewById(R.id.checkBox1);

CheckBox checkBox2 = (CheckBox) findViewById(R.id.checkBox2);

CheckBox checkBox3 = (CheckBox) findViewById(R.id.checkBox3);

TextView textView = (TextView) findViewById(R.id.textView1);

StringBuffer str = new StringBuffer();

if(checkBox1.isChecked())

{

str.append(checkBox1.getText());

}

if(checkBox2.isChecked())

{

str.append(checkBox2.getText());

}

if(checkBox3.isChecked())

{

str.append(checkBox3.getText());

}

textView.setText(str);

}

}

1.代码实现按钮点击方法button.PerformClick()

注:只有当button.Enabled为true

==============================UI控件属性相关==============================

控件自定义:

1.圆形progressbar

系统styles里找到progressbar的style属性:

true

@android:drawable/progress_medium_white

repeat

3500

48dip

48dip

48dip

48dip

其中,下面这句决定背景图案的设置,这个属性添加到控件的属性里:@android:drawable/progress_medium_white

将系统的drawable文件夹找到progress_medium_white.xml复制到自己的项目里,并进行修改:

android:drawable="@drawable/ic_launcher"

android:pivotX="50%"

android:pivotY="50%"

/>

2.进度progressbar

系统style文件内容:

false

@android:drawable/progress_horizontal

@android:drawable/progress_indeterminate_horizontal

20dip

20dip

关联的属性为:name="android:progressDrawable"

修改progress_horizontal.xml:

控件基本属性:

(1)修改属性stylestyle="?android:attr/progressBarStyleHorizontal"

(2)最大进度值为100android:max="100"

(3)初始化的进度值android:secondaryProgress="70"

(4)设置为无限进度android:indeterminate="true"

(5)代码设置样式ProgressBar progressBar = new ProgressBar(this);

progressBar.setIndeterminate(false);

progressBar.setProgressDrawable(getResources().getDrawable(android.R.drawable.progress_horizontal));

progressBar.setIndeterminateDrawable(getResources().getDrawable(android.R.drawable.progress_indeterminate_horizontal));

progressBar.setMinimumHeight(20);

3.seekbar:

类似于progressbar,只是多了个拖动按钮。

添加一个thumb属性:实际上是个selector的按钮。

4.ratingbar:

搜索ratingbar的xml文件进行修改,关联属性:progressDrawable。

以4.2版本里ratingbar_full_holo_dark的风格为例:

ratingbar_full_empty_holo_dark.xml代码:

android:state_window_focused="true"

android:drawable="@drawable/btn_rating_star_off_pressed_holo_dark" />

android:state_window_focused="true"

android:drawable="@drawable/btn_rating_star_off_focused_holo_dark" />

android:state_window_focused="true"

android:drawable="@drawable/btn_rating_star_off_focused_holo_dark" />

ratingbar_full_filled_holo_dark.xml代码:

android:state_window_focused="true"

android:drawable="@drawable/btn_rating_star_on_pressed_holo_dark" />

android:state_window_focused="true"

android:drawable="@drawable/btn_rating_star_on_focused_holo_dark" />

android:state_window_focused="true"

android:drawable="@drawable/btn_rating_star_on_focused_holo_dark" />

rating_style.xml代码:

XML文件代码:

android:id="@+id/ratingBar1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:progressDrawable="@drawable/rating_style"

android:layout_alignParentBottom="true"

android:layout_centerHorizontal="true"

android:layout_marginBottom="35dp" />

5.checkbox和radiobutton:

checkbox可以直接添加一个属性修改为star风格:android:style="?android:attr/starStyle"

关联属性:android:button="@drawable/checkbox_selector"

XML代码:

android:id="@+id/checkBox1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignParentTop="true"

android:layout_centerHorizontal="true"

android:layout_marginTop="58dp"

android:button="@drawable/checkbox_selector"

android:text="CheckBox" />

selector代码:<?xml  version="1.0" encoding="utf-8"?>

android:state_pressed="false"

android:drawable="@drawable/checkbox_cart_goods_on">

android:state_pressed="true"

android:drawable="@drawable/checkbox_on">

android:state_pressed="true"

android:drawable="@drawable/checkbox_off">

android:state_pressed="false"

android:drawable="@drawable/checkbox_normal">

监听事件:mIv_CheckXieyi.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener()

{

@Override

public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)

{

if(isChecked)

{

Log.e("", "updateCheckBox===false");

}

else

{

Log.e("", "updateCheckBox===true");

}

}

});

注:左侧的图案直接使用button无法出现时,可使用drawableLeft设置,如下:

android:id="@+id/routemenu_tab_walk"

style="@style/tab_title_maproute"

android:drawableLeft="@drawable/selector_route_walk"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:layout_weight="1"

android:background="@drawable/selector_tab_bg_left"

android:text="步行" />

其中tab_title_maproute.xml代码如下:

@null

8dp

8dp

@color/white

15sp

@dimen/photo_gallery_tab_hight

@drawable/selector_tab_bg_center

center

其中selector_route_walk.xml代码如下:<?xml  version="1.0" encoding="utf-8"?>

android:drawable="@drawable/route_walk_nor">

android:drawable="@drawable/route_walk_nor">

android:drawable="@drawable/route_walk_nor">

6.TextView相关:

(1)DrawableTop在代码中的实现方法:public View getView(int position, View convertView, ViewGroup parent)

{

LayoutInflater inflater = getLayoutInflater();

TextView textView = null;

if (position == 0 || position == 2 || position == 8)

{

textView = (TextView) inflater.inflate(

R.layout.navi_menu_item_separator, null);

}

else

{

textView = (TextView) inflater.inflate(

R.layout.navi_menu_item, null);

Drawable drawable = getResources().getDrawable(ICONS[position]);

drawable.setBounds(0, 0, drawable.getMinimumWidth(), drawable.getMinimumHeight());

textView.setCompoundDrawables(drawable, null, null, null);//四个参数分别对应为上下左右,相当于xml里对textview设置drawabletop

}

textView.setText(TITLES[position]);

return textView;

}

(2)文本添加链接功能的属性autolink:@Override

protected void onCreate(Bundle savedInstanceState)

{

super.onCreate(savedInstanceState);

setContentView(R.layout.link);

/*

* APIdemo里:com.example.android.apis.text;

*/

SpannableString ss = new SpannableString("text4: Manually created spans. Click here to dial the phone.");

ss.setSpan(new StyleSpan(Typeface.BOLD), 0, 30, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); // setSpan方法可以用来根据判断文本位置设置文本特定类型

ss.setSpan(new URLSpan("tel:4155551212"), 31 + 6, 31 + 10, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

TextView t4 = (TextView) findViewById(R.id.text4);

t4.setText(ss);

t4.setMovementMethod(LinkMovementMethod.getInstance());

}

(3)为文字加阴影

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="text1"

android:textSize="28sp"

android:textStyle="bold"

android:textColor="#FFFFFF"

android:shadowColor="#ff000000"   //阴影颜色

android:shadowDx="2"              //阴影的水平偏移量

android:shadowDy="2"              //阴影的垂直偏移量

android:shadowRadius="1"          //阴影的范围

/>

(4)添加下划线

如果是在资源文件里,可以这样写:

phone: 1390123456

MyLink

如果是代码这样写.TextView textView = (TextView)findViewById(R.id.testView);

textView.setText(Html.fromHtml(""+"hahaha"+""));

或者也可以这样写:textview.getPaint().setFlags(Paint.UNDERLINE_TEXT_FLAG);//下划线

(5)通过字符串格式拼凑文本String content = TextUtil.preventEmpty(comment.content);

String replyToUserName = comment.replyToUser.username;

String ContentBody = APP.getInstance().getString(R.string.discuss_content,replyToUserName,content);

tvDiscussContent.setText(ContentBody);

xml资源内写法:回复 %1$s : %2$s 

(6)设置部分字体颜色textView = (TextView) findViewById(R.id.textview);

SpannableStringBuilder builder = new SpannableStringBuilder(textView.getText().toString());

//ForegroundColorSpan 为文字前景色,BackgroundColorSpan为文字背景色

ForegroundColorSpan redSpan = new ForegroundColorSpan(Color.RED);

ForegroundColorSpan whiteSpan = new ForegroundColorSpan(Color.WHITE);

ForegroundColorSpan blueSpan = new ForegroundColorSpan(Color.BLUE);

ForegroundColorSpan greenSpan = new ForegroundColorSpan(Color.GREEN);

ForegroundColorSpan yellowSpan = new ForegroundColorSpan(Color.YELLOW);

builder.setSpan(redSpan, 0, 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);

builder.setSpan(whiteSpan, 1, 2, Spannable.SPAN_INCLUSIVE_INCLUSIVE);

builder.setSpan(blueSpan, 2, 3, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);

builder.setSpan(greenSpan, 3, 4, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);

builder.setSpan(yellowSpan, 4,5, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);

textView.setText(builder);

(7)设置style:textView.setTextAppearance(mContext, R.style.labels);

(8)长按复制,api>11android:textIsSelectable="true"

6.EditText相关:

1.设置默认提示:android:hint="请输入姓名"

android:textColorHint="#ff00ff00"

android:background="@null"去掉输入框

2.取消焦点和请求焦点方法//取消焦点

mEt_login_name.setFocusable(false);//请求焦点

mEt_login_name.setFocusableInTouchMode(true);

mEt_login_name.setFocusable(true);

mEt_login_name.requestFocus();

3.监听编辑框字数// 字数变化

mEt_content.addTextChangedListener(this);

onTextChanged(mEt_content.getText(), 0, mEt_content.length(), 0);/**

* ******************监听编辑框输入字数**********************************

*/

@Override

public void afterTextChanged(Editable s)

{

}

@Override

public void beforeTextChanged(CharSequence s, int start, int count, int after)

{

}

@Override

public void onTextChanged(CharSequence s, int start, int before, int count)

{

int remain = MAX_TEXT_COUNT - mEt_content.length();

mTv_counter.setText(String.valueOf(remain));

mTv_counter.setTextColor(remain > 0 ? 0xffcfcfcf : 0xffff0000);

}

4.监听编辑框输入回车键mEt_jianhuo.setOnKeyListener(new OnKeyListener()

{

@Override

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

{

if (KeyEvent.KEYCODE_ENTER == keyCode && event.getAction() == KeyEvent.ACTION_DOWN)

{

Log.e("mEt_jianhuo", "enter");

saoMaCheckedToServer(mEt_jianhuo.getText().toString() + "", mData.getId() + "", isUseAvg());

return true;

}

return false;

}

});

5.设置软键盘回车键显示为"下一条"或者"完成"等

主要属性:

imeActionLabel

imeOptions

singleLine

android:id="@+id/hm_saoma_et_quxiao"

android:layout_width="wrap_content"

android:layout_height="40dp"

android:layout_weight="1"

android:imeOptions="actionNext"

android:imeActionLabel="下一条"

android:singleLine="true"

android:ems="15"

/>

android:id="@+id/hm_saoma_et_quxiao"

android:layout_width="wrap_content"

android:layout_height="40dp"

android:layout_weight="1"

android:ems="15"

android:imeActionLabel="完成"

android:imeOptions="actionDone"

android:singleLine="true" />

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值