导航:首页 > 操作系统 > android自定义列表框

android自定义列表框

发布时间:2024-01-17 01:52:51

‘壹’ android里能为下拉菜单设置监听事件么

Spinner组件的主要功能是用于进行下拉列表显示的功能,当用户选中下拉列表中的某个选项之后可以使用Spinner类中提供的setOnItemClickListener()方法进行监听。

下拉菜单监听范例:

packagecom.richard.onitemselectedlistener;

importandroid.os.Bundle;

importandroid.app.Activity;

importandroid.view.Menu;

importandroid.view.View;

importandroid.widget.AdapterView;

importandroid.widget.AdapterView.OnItemSelectedListener;

importandroid.widget.ArrayAdapter;

importandroid.widget.Spinner;

{

privateSpinnercity=null;//定义下拉列表框

privateSpinnerarea=null;//定义下拉列表框

privateString[][]areaData=newString[][]{//定义联动菜单项

{"东城","西城","朝阳","大兴","平谷"},//第一级子选项

{"黄浦","杨浦","闵行"},//第二级子选项

{"广州"}};//第三级子选项

privateArrayAdapter<CharSequence>adapterArea=null;//下拉列表内容适配器

@Override

publicvoidonCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);//父类onCreate()

super.setContentView(R.layout.activity_main);//调用布局管理器

this.city=(Spinner)super.findViewById(R.id.city);//取得组件

this.area=(Spinner)super.findViewById(R.id.area);//取得组件

this.city.setOnItemSelectedListener(

newOnItemSelectedListenerImpl());//设置监听器

}

{

@Override

publicvoidonItemSelected(AdapterView<?>adapterView,Viewview,

intposition,longid){//选项选中时触发

MainActivity.this.adapterArea=newArrayAdapter<CharSequence>(

MainActivity.this,

android.R.layout.simple_spinner_item,

MainActivity.this.areaData[position]);//实例化列表项

MainActivity.this.adapterArea.setDropDownViewResource(

android.R.layout.simple_spinner_dropdown_item);//设置下拉列表显示风格

MainActivity.this.area

.setAdapter(MainActivity.this.adapterArea);//设置数据

}

@Override

publicvoidonNothingSelected(AdapterView<?>adapterView){//没有选项时触发

}

}

@Override

(Menumenu){

//Inflatethemenu;.

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

returntrue;

}

}


‘贰’ android 从底部弹出一个列表框点击列表框的内容再同样的弹出一个列表框,如此循环

这个用自定义dialog实现
dialog 的控件,用你自己的布局, listView要使用自定义Adapter Window window = dialog.getWindow();
window.setGravity(Gravity.BOTTOM); //此处可以设置dialog显示的位置
window.setWindowAnimations(R.style.mystyle); //添加动画
styles.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="mystyle" parent="android:Animation">
<item name="@android:windowEnterAnimation">@anim/dialog_enter</item> //进入时的动画
<item name="@android:windowExitAnimation">@anim/dialog_exit</item> //退出时的动画
</style>
</resources>

位于 res/anim/dialog_enter.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">

<translate
android:fromYDelta="100%p" %p指相对于父容器
android:ration="600"
/>
</set>

位于 res/anim/dialog_exit.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:toYDelta="100%p"
android:ration="600" //持续时间
/>
</set>

‘叁’ 如何自定义Android Dialog的样式

如何自定义Android Dialog的样式? Android 中自定义Dialog的样式,主要是通过自定义的xml,然后载入到dialog的背景中,如下步骤:

1、自定义Dialog
final Dialog dialog = new Dialog(this, R.style.Theme_dialog);
2、窗口布局
View contentView = LayoutInflater.from(this).inflate(R.layout.select_list_dialog,null);
3、把设定好的窗口布局放到dialog中
dialog.setContentView(contentView);
4、设定点选视窗空白处取消会话

dialog.setCanceledOnTouchOutside(true);
5、具体的操作
ListView msgView = (ListView)contentView.findViewById(R.id.listview_flow_list);
6、展示视窗
dialog.show();例:final Dialog dialog = new Dialog(this,R.style.Theme_dialog);View contentView =LayoutInflater.from(this).inflate(R.layout.select_list_dialog, null);dialog.setContentView(contentView);dialog.setCanceledOnTouchOutside(true);ListView msgView = (ListView)contentView.findViewById(R.id.listview_flow_list);TextView titleText = (TextView)contentView.findViewById(R.id.title);titleText.setText("请选择银行卡");SelectBankCardDialogAdapter adapter =new SelectBankCardDialogAdapter(this, mBankcardList);msgView.setAdapter(adapter);msgView.setOnItemClickListener(newOnItemClickListener() {@Overridepublic void onItemClick(AdapterViewparent, View view, int position, long id) {Toast.makeText(RechargeFlowToMobileActivity.this, position+"",0).show();mSelectCard =mBankcardList.get(position);String area = mSelectCard.getBank_card();mCardNumberText.setText(area);dialog.di *** iss();}});Button closeBtn = (Button)contentView.findViewById(R.id.close);closeBtn.setClickable(true);closeBtn.setOnClickListener(newView.OnClickListener() {@Overridepublic void onClick(View v) {dialog.di *** iss();}});dialog.show();
以上就是在Android开发自定义dialog样式的方法和步骤,android很多的控制元件都提供了接口或者方法进行样式的定义和修改。
如何自定义android Button样式
返回部落格列表
转 android自定义button样式
sumpower
释出时间: 2014/02/25 19:56
阅读: 4162

收藏: 0

点赞: 0

评论: 0
摘要
android自定义button样式
在Android开发应用中,预设的Button是由系统渲染和管理大小的。而我们看到的成功的移动应用,都是有着酷炫的外观和使用体验的。因此,我们在开发产品的时候,需要对预设按钮进行美化。在本篇里,笔者结合在应用开发中的经验,探讨一下自定义背景的按钮、自定义形状按钮的实现方法。
首先看实现效果截图:
自定义背景的按钮目前有2种方式实现,向量和点阵图。
1. 向量图形绘制的方式
向量图形绘制的方式实现简单,适合对于按钮形状和图案要求不高的场合。步骤如下:
(a) 使用xml定义一个圆角矩形,外围轮廓线实线、内填充渐变色,xml程式码如下。
view plain
bg_alibuybutton_default.xml
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="地址">
<item>
<shape android:shape="rectangle">
<solid android:color="#FFEC7600" />
<corners
android:LeftRadius="5dip"
android:RightRadius="5dip"
android:bottomLeftRadius="5dip"
android:bottomRightRadius="5dip" />
</shape>
</item>
<item android:="1px" android:bottom="1px" android:left="1px" android:right="1px">
<shape>
<gradient
android:startColor="#FFEC7600" android:endColor="#FFFED69E"
android:type="linear" android:angle="90"
android:centerX="0.5" android:centerY="0.5" />
<corners
android:LeftRadius="5dip"
android:RightRadius="5dip"
android:bottomLeftRadius="5dip"
android:bottomRightRadius="5dip" />
</shape>
</item>
</layer-list>
同样定义bg_alibuybutton_pressed.xml和bg_alibuybutton_selected.xml,内容相同,就是渐变颜色不同,用于按钮按下后的背景变化效果。
(b) 定义按钮按下后的效果变化描述档案drawable/bg_alibuybutton.xml,程式码如下。
view plain
<?xml version="1.0" encoding="UTF-8"?>
<selector xmlns:android="地址">
<item android:state_pressed="true"
android:drawable="@drawable/bg_alibuybutton_pressed" />
<item android:state_focused="true"
android:drawable="@drawable/bg_alibuybutton_selected" />
<item android:drawable="@drawable/bg_alibuybutton_default" />
</selector>
(c) 在你需要的接口定义档案中,如layout/main.xml中定义一个Button控制元件。
view plain
<Button
android:layout_width="120dip"
android:layout_height="40dip"
android:text="向量背景按钮" android:background="@drawable/bg_alibuybutton" />
这样,自定义背景的按钮就可以使用了,在实现onClick方法后就可以响应操作。

android自带的样式比较难看,如何能够自定义按钮的样式,使其显示的跟美工设计的效果一样,现与大家分享下
在layout中新增2个按钮,从下图中可以看出在按钮中呼叫了style和android:background属性,这两个属性一个是自定义样式,一个是给按钮新增背景图片
展开res目录,可以看到在values目录下有styles.xml档案,该档案用于自定义样式,双击开启
标注的是我自定义的样式,name为BtnStyle,当按钮呼叫自定义样式的时候访问这个name
在button中呼叫自定义样式的方法,比较简单
如何往按钮中新增自定义图片,使按钮看起来更漂亮些,因不同手机分辨率不同,那必然牵扯到图片的拉伸,在android系统下有个很好的技术“九宫格“,可以对图片进行处理,只对区域性进行拉伸,给工具目录储存在android\sdk\tools\draw9patch.bat,经过该工具处理的图片以.9.png结尾,放到drawable资料夹中
在Button中通过android:background属性载入图片的方法,至此我们自定义的按钮样式也就完成了,当然这只是个引子,在具体的专案工程中实现的效果要比这个demo复杂很多,有好的设计思路欢迎交流。

‘肆’ 怎么给android 设置边框

  1. android设置边框利用内容的margin或者padding的留白加容器的背景来实现边框效果。

  2. shape来实现边框效果

  3. corners是设置边框圆角

  4. stroke是描边的

  5. layer-list实现自由边框

嵌套一层,利用内容的margin或者padding的留白加容器的背景来实现边框效果。其实这个道理很简单,很早的时候那时候我们还用table做html页面布局的时候,我们就是使用cellspacing来实现table的边框的。现在我们也利用同样的想法来实现。

当然内部的容器也是需要有颜色的,如果想实现内部透明的效果则需要将内部View的背景色跟背景的颜色保持一致,这是不太方便的地方。


在Android中,给一个控件(或View)设置背景主要是通过background:xxx属性来完成。background的参数一般来说是一个drawable资源。


给控件设置边框最简单的方式就是把background设置成你预先设计好的带圆角和边框的背景图。但是这种方法的缺点是没有灵活性,不同大小的view要不同尺寸的图片,还要去适应不同分辨率的设备。


3使用9-patch(九宫格)的背景图片来实现边框效果。


做一个有边框的9-patch图片,作为要有边框的View的背景图即可。这样你还可以控制哪边有边框,哪边无边框,这种方法是比较好的一种方法,而且没有多余的View嵌套。另外你还可以实现圆角边框等效果。


4利用shape来实现边框效果。


当然你可以使用shape中的stroke来实现border的效果。


/res/drawable/filename.xml


只要引用这个shape作为背景图片即可。


5.layer-list实现自由边框

当前版本的Android

SDK并没有给stroke提供bottom、left、right之类的属性,也就是说你无法通过它来让长方形的边框少于4条。于是有人想出了这个方法。


android:width="1dp"


android:color="#333"/>


android:left="1dp"


android:top="1dp"


android:right="1dp"


android:bottom="1dp">


android:color="#FFF"/>


在第二个item中定义的top,left...就是对应的边框,不设置即没有边框。

‘伍’ android下拉列表框能自己输入内容吗

android 下拉列表框是不允许输入内容,可以通过代码的形式进行填充数据。

阅读全文

与android自定义列表框相关的资料

热点内容
bitlocker加密后读取不了 浏览:176
算法设计是指流程图吗 浏览:168
javaboot如何防止反编译 浏览:118
python复合数据结构视频 浏览:146
培训学校需要用什么云服务器 浏览:721
卫星锅加密卡那里收购 浏览:58
小米工具文件夹选项在哪里 浏览:55
md5磁盘加密 浏览:642
单片机x地址 浏览:208
回车键失灵运行命令如何使用 浏览:984
电脑一键解压缩的软件 浏览:171
怎么关闭手机通讯录对外app 浏览:370
我的世界如何强行进入一个满人的服务器 浏览:653
什么app可以查询会考成绩 浏览:389
程序员能创造的价值 浏览:260
服务器上的redis是什么意思 浏览:381
软件产品经理与程序员 浏览:923
高中生程序员 浏览:892
ps处理pdf 浏览:724
服务器c1什么意思 浏览:223