909422229__Android UI基础之二【本人总结,适用于新手】

原创 2016年08月31日 14:30:58

下面分享一下Android UI基础的一些总结,如有不好的地方,大牛们可以提下宝贵意见,不胜感激。由于东西很多,所以字体就小了一些。都是本人在学校自学总结的一些。

新手建议学习一些基础的UI设计,最起码可以看到属于自己的app,哈哈。


高级UI组件
【在Toast里面单击事件内,可以直接view.gettext(),系统会自动强制转换,也可以进行
Text iv = v 进行转换,前提情况下需要确定View是什么东西,如果View本身就是需要输出的id】
================================================================================================================================
17:GridView


numColumns 总列数


columnWidth 每一列的宽度


horizontalSpacing 水平间隔


verticalSpacing  垂直间隔


stretchMode 伸展模式


gravity 内容居中


 * GridView
 * 1.自定义适配器
 * (1)创建一个类,继承BaseAdapter
 * (2)实现4个方法
 *  getCount :获取需要显示的选项总数,返回数组大小即可
 *  getItem:获取每一个选项
 *  getItemID :选项ID值
 *  getView :填充数据,返回一个视图,多次调用


LayoutInflater inflater = LayoutInflater.from(context);
View view = inflater.inflate(R.layout.item_layout, null);
插入XML布局文件LayoutInflater
setImageResource  绑定图片
setText  绑定文本
================================================================================================================================


18:ListView 单层列表


设置拖动的背景色为透明 cacheColorHint
设置间距的高度 android:dividerHeight="30dp"
间距的颜色 divider
设置上面和下面有黑色的阴影 fadingEdge  V水平,H垂直
点击某条记录不放,颜色会在记录的后面,成为背景色
什么时候显示滚动条。会自动以藏,显示
快速滚动效果。 android:fastScrollEnabled="true"  有小方块


设置选中时的颜色 listSelector 
设置他的值 android:entries="@array/name" 绑定显示


【List activity 】
 可以继承
List activity 代码绑定数据显示出value内容  


【单选或者多选】


//        设置多选
//        ArrayAdapter<String> ar = new ArrayAdapter<String>(
//                MainActivity3.this,android.R.layout.simple_list_item_multiple_choice,arr);
//        listView.setChoiceMode(listView.CHOICE_MODE_MULTIPLE);


//设置单选模式
        ArrayAdapter<String> aa = new ArrayAdapter<String>(
                MainActivity3.this,android.R.layout.simple_list_item_single_choice,arr);
        listView.setChoiceMode(listView.CHOICE_MODE_SINGLE);
        //设置一下适配器
        listView.setAdapter(aa);


选项的单击事件是 OnlistintemClick  跟gridView相同
================================================================================================================================
优化问题:


【convertView 减少对象多次创建问题,将listView 的宽高固定或者改成Math,避免内容变化导致ListView重新渲染。】
【ViewHolder 减少数据的重复查找】
【以下是GridView 的优化,与ListView相同】
public View getView(int position, View convertView, ViewGroup parent) {
            
            if(convertView == null){
                //插入XML布局文件LayoutInflater
                LayoutInflater inflater = LayoutInflater.from(context);
                convertView = inflater.inflate(R.layout.item_layout, null);
            }
            
            ImageView iv = (ImageView) convertView.findViewById(R.id.imageView);
            TextView tv = (TextView) convertView.findViewById(R.id.textView);
            //设置内容与图片跟XML文件绑定
            iv.setImageResource(images[position]);
            tv.setText(name[position]);
            return convertView;


SimpleAdapter 实现图文列表
ArrayAdater 提示提示信息,直接添加上下文,提示信息,
BaseAdater 父类,继承,自定义适配器


【获取框架的代码,最后有null切记不要忘记,需要一个视图来接收】
View a = getLayoutInflater().inflate(R.layout.load_layout,null);
================================================================================================================================


19:Expandable_listview 分组列表 只能是两层,不能多层次
适配器:
class MyExpandableAdapter extends BaseExpandableListAdapter
ExpandableAdapter,继承BaseExpandableListAdapter方法。
重写里面的多个方法
需要设置主布局跟次布局
getChildView()跟getGroupView()                                                                              
android:adjustViewBounds="true"         自动缩放
android:paddingleft="30dp" 设置左移动


================================================================================================================================
23:ImageSwitcher


控制图片展示效果的一个控件,就是一个IamgeView的选择器,原理就是有两个子View,滑动的时候就是
两个ImageView之间来回切换显示图片
一个接口implements ViewSwitcher.ViewFactory,实现一个方法makeView[需要在上面注册事件]


滑动触发事件:OnTouchlistener 也是接口,实现一个Touch方法,可以直接创建方法Touch方法,不需要接口,效果是一样的。


index 需要前++或者前--、  index++ 先使用,然后加。++index,先++后使用。


setInAnimation   加载图片进入时的动画效果。android 自带 android.R.anim.**
setOutAnimation  出去时的效果
================================================================================================================================
24.ViewFlipper


相当于一个布局文件,在里面重新布局可以用L或者R,在布局文件里面添加图片或者文本。
实现一个Touch方法,可以直接创建方法Touch方法,不需要接口,效果是一样的。
================================================================================================================================
25.Menu 选项菜单,在菜单上显示


Options menu and action bar


Context menu


Popup menu
3.0以后才能用
1.覆盖onCreateOptionMenu 方法
2.调用Menu.add()方法
3.覆盖onOptionsItemSelected方法


add参数:设置分组id,当前选项 id,排序,名称
onOptionsItemSelected  单击事件可以用switch 语句


orderInCategory 排序 ifroom 有空间才显示


图片不会在。。。里面显示,只能显示在外面


第一种显示方法,用MainActiviy里面设置,
第二种显示方法,用XML,menu里面设置,官方推荐用配置文件方法
================================================================================================================================
26.上下文菜单【长按出现菜单】


1.覆盖onCreateContextMenu方法,调用add
2.覆盖onOptionsItemSelected方法
3.调用registerForContextMenu 方法来为视图注册上下文菜单
【XML配置】
<?xml version="1.0" encoding="utf-8"?>
<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="com.example.wsh.vince26_menu.MainActivity"
    >
================================================================================================================================
27.弹出式菜单【点击出现菜单】


点击事件就是Onclick 点击事件,利用PopupMenu 方法new一个新的


MenuInfalter 填充菜单,menu里面选择。


setOnMenuItem 监听事件  继承一个类OnMenuItem  ,然后重写一个方法


然后利用选择不同的菜单利用switch语句进行选择,最后需要在Onclick里面注册事件
【【【【【【添加子菜单,菜单套菜单】】】】】


需要在菜单XML文件里面配置,<item><menu><item></item></menu></item>




================================================================================================================================


28. ViewPager 【引导界面】
直接XML布局文件里面写入。
<android.supper.v4.view.ViewPager>
属性:宽,高,ID,位置【是否居中】,统一布局应该是LinearLayout
需要适配器填充内容,PagerAdaopter


【ViewPager .setCurrentItem(); 设置开始显示那张图片 需要注册事件
ViewPager .setOnPageListener(this) 注册事件】


29:PopupWindow
AlertDialog  位置固定
PopupWindow 位置可以随意定制
分为可便宜与无偏移


showAsDropDown (View anchor) 无偏移,相对某个控件的位置
shouAsDropDown(View anchor,int xoff,int yoff) 相对某个控件的位置,又偏移


//指定PopupWindow的内容
//第二个是指定width
//第三个是指定higth
PopupWindow mPopupWindiow = new PopupWondow(PopupWindow,ViewGrop.LayoutParmas.Fill_PARENT,
ViewGrop.LayoutParmas.WRAP_CONTENT)


版权声明:本文为博主原创文章,未经博主允许不得转载。

909422229__Android UI基础之一【本人总结,适用于新手】

下面分享一下Android UI基础的一些总结,如有不好的地方,大牛们可以提下宝贵意见,不胜感激。由于东西很多,所以字体就小了一些。都是本人在学校自学总结的一些。 新手建议学习一些基础的UI设计,最起...
  • a909422229
  • a909422229
  • 2016年08月31日 14:21
  • 241

北京博物馆总结

北京馆名评级参观用时展览内容预约和购票地址交通普遍周一闭馆评论网址首都博物馆★★★★★★10+小时文物历史要预约,有特展时可购票进入。西城区复兴门外大街16号地铁1号线木樨地站,东南口东行300m 目...
  • saobing
  • saobing
  • 2009年07月22日 11:29
  • 1943

Android 面试题总结之Android 基础(六)

Android 面试题总结之Android 基础(六) 在上一章节Android 面试题总结之Android 基础ListView(五) 主要是ListView的优化,原理以及一些基本问题。 ...
  • vfush
  • vfush
  • 2016年05月30日 15:29
  • 7817

个人总结之首次体验Team Leader

提到Team Leader,其实不过是包括自己在内个三人的小组。在历时近三个周的共同工作、共同学习中,让我对Team Leader这个角色有了感悟。         1、明确目标。      目标不...
  • u010492843
  • u010492843
  • 2015年01月17日 22:14
  • 455

UI方面总结

一、UI是什么: User Interface(用户界面),简称ui,对软件的人机互交、操作逻辑、界面美观的整体设计。 UI设计分三个分支: 1、研究界面—-图形设计师Graphic UI desig...
  • qq_31029729
  • qq_31029729
  • 2016年01月26日 14:52
  • 290

本人新手

刚接触wince,不知道从何下手,有劳各位点拨一下,谢谢
  • humingjin007
  • humingjin007
  • 2010年09月26日 01:34
  • 92

[UnityUI]UGUI新手引导

1.假如ImageA在ImageB前面,且ImageA完全覆盖ImageB,点击两者的重叠部分,ImageA会收到点击事件,而ImageB不会...
  • lyh916
  • lyh916
  • 2016年03月15日 16:28
  • 4994

UI测试常见BUG汇总——适用于新手

录入界面 1.1 输入字段要完整,且要与列表字段相符合(参照数据库进行检查) 1.2 必填项一律在后面用*表示(必填项为空在处理之前要有相关的提示信息) 1.3 字段需要做校验,如果...
  • n8765
  • n8765
  • 2016年01月04日 18:20
  • 293

UI学习总结--几个比较重要的知识点

1. scrollerview的常用属性和代理方法(一部分滚动,一部分缩放) 2. navigationcontroller(navigationitem添加按钮等等和navigationbar改变...
  • q408896553
  • q408896553
  • 2016年03月03日 14:53
  • 339

学习心得-------计算机网络基础(1)

从复试结束之后就忙于奔波,甚是乏累,从沈阳来到北京就忙于找工作,少于看书,昨天终于决定入职,入职之后,做的方向是网络质量检测,APM,应用性能管理,给我的产品说明,只是寥寥几个字,各种术语,百度网络质...
  • Hearthougan
  • Hearthougan
  • 2016年04月21日 17:37
  • 1130
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:909422229__Android UI基础之二【本人总结,适用于新手】
举报原因:
原因补充:

(最多只允许输入30个字)