您的位置:首页 > 产品设计 > UI/UE

第八章 高级UI组件

2015-11-22 16:51 351 查看
========================ImageView------图像视图==========================
用来展示图片。
  android:scaleType="fixXY"----设置图片的缩放规则横纵占满整个组件//scale 比例n
  android:src="@drawable/bulb_off" ----添加图片资源
  在代码中通过iv.setImageResource(R.drawable.bulb_on);来添加图片资源

=========================RadioButton----单选按钮=========================
嵌套在同一个RadioGroup的RadioButton 可以实现单选效果。
  android:checked="true"---设置为选中状态
为单选按钮添加选中状态改变的监听:

rb1.setOnCheckedChangeListener(new OnCheckedChangeListener()
{
@Override
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
// 如果为选中
if (isChecked)
{

}
}
});


给RadioGroup添加监听:

rg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener()
{
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
//根据checkedId来判断选中的RadioButton
switch (checkedId) {
case R.id.rb_1:
Toast.makeText(MainActivity.this, "111", 0).show();
break;
case R.id.rb_2:
Toast.makeText(MainActivity.this, "2222", 0).show();
break;
default:
break;
}
}
});


===============================Checkbox-----多选框===============================
给CheckBox添加选中状态发生改变的监听:new onCheckChangeListener(){}

===============================ToggleButton----具有状态显示的Button==================
android:textOn="打开"--------设置选中状态为ture时的文字
android:textOff="关闭"--------设置选中状态为false时的文字
android:checked="false"----------设置选中状态为false

===============================ContextMenu ----------- 上下文菜单=========================
可以为组件注册上下文菜单。当组件长摁时,弹出上下文菜单。
静态注册:
1.为组件注册上下文菜单
  registerForContextMenu(img);//register n/v 注册
2.添加(xml)上下文菜单

@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo)
{
super.onCreateContextMenu(menu, v, menuInfo);
getMenuInflater().inflate(R.menu.menu_context,menu);
}


自定义菜单资源文件res/menu/menu_context.xml:

<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context=".MainActivity">
<item android:id="@+id/itemOpen"
android:title="打开"
android:orderInCategory="1"/>
<item android:id="@+id/itemClose"
android:title="关闭"
android:orderInCategory="2"/>
</menu>


3.设置ContextMenu的条目选中监听

public boolean onContextItemSelected(MenuItem item)
{
//根据item的id来判断点击的是哪个条目
switch (item.getItemId())
{
case 10:
//do something
break;
case 11:
//do something
break;
default:
//do something
break;
}
return super.onContextItemSelected(item);
}


动态注册:
1.为组件注册上下文菜单
  registerForContextMenu(img);//register n/v 注册
2.设置ContextMenu

@Override
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo)
{
//在代码中动态添加选项
super.onCreateContextMenu(menu, v, menuInfo);
//添加标题头
menu.setHeaderTitle(R.string.ctxmenu_title);
//参数:组id,条目id,排序(数越大越靠后),条目的文字描述
menu.add(0, 10, 100, "打开");
menu.add(0, 11, 20, "关闭");
}


3.设置ContextMenu的条目选中监听

@Override
public boolean onContextItemSelected(MenuItem item)
{
//根据item的id来判断点击的是哪个条目
switch (item.getItemId()) {
case 10:
//do something
break;
case 11:
//do something
break;
default:
//do something
break;
}
return super.onContextItemSelected(item);
}


================ImageButton -----继承于ImageView===============
为按钮添加图片资源:android:src="@drawable/exit"
有点击的效果
为ImageButton添加单击监听

ib.setOnClickListener(new OnClickListener()
{
public void onClick(View v)
{
MainActivity.this.finish();
}
});


===================================MVC UI组件======================================

Spinner------下拉列表
常用属性/方法:
  android:divider="@color/..."
  android:divider="@drawable/..."----分割线样式
  android:dividerHeight="3dp"--------分割线宽度
  android:popupBackground="@android:color/holo_blue_light"----------弹出的背景//popup弹出
  spinner.setSelection()-------------设置默认选中条目

使用:

//
//创建Adapter
//ArrayAdapter参数: 上下文目录, 布局文件(下拉前), 数据源(数组)
//
ArrayAdapter<String> adapter = new ArrayAdapter<String>(MainActivity.this,
android.R.layout.simple_spinner_item, data);
//
//设置下拉列表(下拉后)的样式
//自定义的 res/layout/spinner_item.xml
//
adapter.setDropDownViewResource(R.layout.spinner_item);//drop落下v
//
//spinner加载Adapter
//
spinner.setAdapter(adapter);


自定义布局资源文件 res/layout/spinner_item.xml:

<?xml version="1.0" encoding="utf-8"?>
<TextView
android:id="@+id/show"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:color/holo_green_light"
xmlns:android="http://schemas.android.com/apk/res/android">

</TextView>


自定义字符串资源文件 res/values/arrays.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources>
<array name="array_strings">
<item>新垣结衣</item>
<item>长泽雅美</item>
<item>崛北真希</item>
<item>户田惠梨香</item>
</array>
</resources>


Java代码中使用:

String[] data = getResources().getStringArray(R.array.array_strings);


    (注意:写在 setContentView(R.layout.activity_main); 之后)

Spinner设置监听:

spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener()
{
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) //position 位置n
{
Toast.makeText(MainActivity.this, position + 1 +" hahhah", Toast.LENGTH_SHORT).show();
}

@Override
public void onNothingSelected(AdapterView<?> parent)
{

}
});


**注意:// java.lang.RuntimeException: setOnItemClickListener cannot be used with a spinner

AutoCompleteTextView------------------------自动完成文本视图
常用属性:
  android:completionHint="String"--------------提示String
  android:completionThreshold="3"--------------在输入3位时开始提示类容//threshold 入口n

常用方法:
//让AutoCompliteTextView显示提示列表
auto.showDropDown();
//让AutoCompliteTextView关闭提示列表
auto.dismissDropDown();

ListView----------------列表视图
  显示最后一行:
  android:stackFromBottom="true"
  或者
  listView.setSelection(listView.getBottom)
  或者
  listView.setSelection(adapter.getCount())

ListView设置监听:

listView.setOnItemClickListener(new AdapterView.OnItemClickListener()
{
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id)//position位置
{
//do something
}
});
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: