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)


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

相关文章推荐

Android UI控件之Gallery --拖动、覆盖、循环、3D图片浏览 效果之二

上一篇博客中实现了一种3d效果的图片浏览功能,但是感觉上还是太过"硬性",因此对上         一次做一些改进。好了话不多说直接给出效果图吧。小编是“刀剑”的粉丝,因此就以“刀剑”为  ...

Android UI 基础教程 源代码

  • 2015-10-12 18:17
  • 392KB
  • 下载

Android UI开发专题(二) 之绘图基础

大家有什么疑问可以留言,我们共同解决!留言哦! 今天我们继续介绍Android平台底层绘图类的相关内容,在Android UI开发专题(一) 之界面设计中我们介绍了有关Android平台资源使用以...

新手在路上! Android UI界面设计

相对布局RelativeLayout 线性布局LinearLayout 中英文切换

android UI基础教程代码

  • 2013-11-26 17:24
  • 393KB
  • 下载

Android UI开发专题(二) 之绘图基础

今天我们继续介绍Android平台底层绘图类的相关内容,在Android UI开发专题(一) 之界面设计中我们介绍了有关Android平台资源使用以及Bitmap相关类的操作,接下来将会以实例的方式给...

Android UI 基础教程

  • 2014-04-02 10:11
  • 2.60MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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