达内培训第二阶段第一周--齐磊老师

因为这周占用3天时间毕业答辩,所以总结不全面,请谅解。

首先说明一下我是一个电气专业的学生,没有计算机方面的基础。根据我前一个月的经验,我个人觉得如果你没有一点的计算机经验,那么Android的基础就更加的无从谈起,所以我觉得只有一个办法了。一个字,背!!!

读书百遍,其义自现!!!如果你把老师课上讲的资料总结并记住之后,开始重复的练习,我觉得经过很多次的练习,你会发现老师在课上没有讲的经过你的多次的练习,你会有所领悟,你会在自己练习的过程中总结出一套属于你自己的学习方法。

下面我就把我这两天的总结叙述如下:

Day01

RelativeLayout:对viewgroup中的元素进行精确定位;对屏幕中的元素进行

 

android:layout_toRightOf="@id/btn01"    谁在谁的右边

android:layout_toLeftOf="@+id/btn03"    谁在谁的左边

android:layout_toStartOf="@+id/btn03"

android:layout_toEndOf="@id/btn01"

 

android:layout_alignParentRight="true"   与父类容器右端对齐

android:layout_alignParentLeft="true"

android:layout_alignParentTop="true"

android:layout_alignParentBottom="true"

 

android:text="@string/btn03"            文本内容为。。。

Text中的内容转换为res-->values-->strings.xml中的@string/btn03的步骤:鼠标放置此上,ctrl+1,弹出对话框点击ok。

可在工程目录中的res-->values-->strings.xml,点击另一个框可见(下面)。

 

android:layout_alignBaseline="" 文本内容基线对齐

android:gravity="center"     文本内容居中

android:layout_gravity=”right/top”    只有帧布局和线性布局使用

android:layout_centerHorizontal="true"           最上面一行的中间

android:layout_centerVertical="true"

android:hint=""     字体灰色,上面能写字。提示语句。

android:text=""     文本内容

android:typeface=""      设置字体

android:textColor=""    字体颜色(RGB:红绿黄    f最深0最浅       例如:#ffff0000红色)

android:textSize=""             字体大小

 

android:layout_centerInParent=""             水平垂直都居中

android:layout_centerHorizontal=""   水平居中

android:layout_centerVertical="true" 垂直居中

 

android:layout_below=""     在谁的下面

android:layout_above=""     在谁的上面

 

容器之间的距离:外边距

android:layout_margin=""

android:layout_marginLeft=""

android:layout_marginRight=""

android:layout_marginBottom=""

android:layout_marginTop=""

 

内边距

android:padding=""

android:paddingLeft=""

android:paddingRight=""

android:paddingTop=""

android:paddingBottom=""

 

 

底端对齐gravity(指内容与边框的对齐)

android:gravity="bottom"

android:gravity="center"     文本内容居中

android:layout_gravity=”right/top”    只有帧布局和线性布局使用

 

 

LinearLayout:线性布局。对容器中的元素进行线性方式布局,水平和垂直。不能精确布局。

只有垂直方向(整体)才能水平居中(局部)。

只有水平方向(整体)才能垂直居中(局部)。

 

水平方向不能右对齐。

垂直方向不能下对齐。

 

android:layout_width="0dp"              权重(比重)-----水平(整体)

android:layout_weight="1"

 

android:layout_height="0dp"             权重(比重)----垂直(整体)

android:layout_weight="1"

 

View是所有类的父类

线性布局右对齐加view,比重为1.

 

GridLayout:以网格的布局。自动换行。

版本要求API为14:

修改:AndroidManifest.xml

 

android:columnCount="5"  列的数量,说几就几

android:rowCount="5" 行的数量,说几就几

 

横跨和填满,结合使用。

android:layout_gravity="fill_vertical"             垂直填满

android:layout_gravity="fill_horizontal"   水平填满

android:layout_columnSpan="2"              横跨几列

android:layout_rowSpan="2"             横跨几行

 

元素放置在几列(行数系统自动设置)

android:layout_column=""  从0开始

 

FrameLayout:帧布局

按照一定的层次结构,对元素进行布局。(从左上角展开进行布局)

一层一层进行布局。

 

放图片<Imageview>

android:src="@drawable/ic_launcher"              获取图片资源

图片复制到res-->drawable。     图片名字只能用小写字母和数字和下划线。

 

android:scaleType="fitCenter"    拉伸模式

layout_gravity=”right/top”  图片放到右上角。只有帧布局和线性布局使用

安卓官方图片@android:drawable

 

android:background="@drawable/ic_launcher" 背景图片

 

组件的大小最好写16dp的整数倍。dp是像素的值。

字体的大小最好是12sp的整数倍。

 

Common Layout布局优化:

1、优化层次结构(越浅越好,例如:借助merge标签合并相同元素)

继承体系:Window-->Perspective-->openperspective-->other-->Hierarchy View

DDMS中的adb 安卓设备调试桥。

继承体系树状图没有反应,可以重启DDMS的adb。

2、优化对象个数(越少越好)

merge合并:此布局和上一层的布局都是一样的布局。那么此布局的外围布局设置就可以设置为<merge></merge>。并且在上一层的布局中可以写:

<includelayout="@layout/btn_main_01"/>连接此布局。

 

3、优化布局的可重用性(借助include标签)

引入: <include layout=”layout/@布局文件”/>

4、优化对象的加载时机(延迟加载,借助viewstub)

android:inflatedId="@+id/pbarId"

类加载:类只加载一次。

<!-- 延迟加载layout属性指定的布局 -->

    <ViewStub

        android:layout="@layout/progressvar_layout_01"

        android:inflatedId="@+id/pbarId"    //progressbarid

        android:layout_centerHorizontal="true"      //加载的图片放在最上面的中间

        />

 

    private ViewStub vStub;

    private ProgressBar progressBar;

    @Override

    protected voidonCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        vStub=(ViewStub)findViewById(R.id.vsId);

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

    }

    public voidonClick(View v){

        //加载布局文件(vStub中使用的layout属性此时会加载)

        vStub.inflate();

        //加载完成以后就可以获得加载的对象了

       Log.i("TAG", "onClick.progressBar="+progressBar); 

    }

 

//1.借助Context获得布局资源(activity_main.xml)

//2.底层借助pull解析xml资源

//3.底层借助反射构建元素对象

//4.将元素对象添加到activity对应的window窗口上

setContentView(R.layout.activity_main);

 

去掉app的标题:

AndroidManifest.xml-->

        <activity

             //无标题API至少需要13

            android:theme="@android:style/Theme.Holo.Light.NoActionBar">

       </activity>

新建布局Layout:鼠标放在layout-->ctrl+N-->选择xml-->xml file-->layout---

新建android工程:鼠标放置在空地-->Ctrl+N-->选择android

Day02

滚动视图(垂直滚动和水平滚动):

1、ScrollView:默认垂直滚动

2、HorizontalScrollView:水平滚动

说明无论使用哪种布局,在内部都需要嵌套一个LinearLayout对象。

滚动布局里面放线性布局,线性布局里面放内容。

    private TextView tv2;

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        LinearLayoutlinearlayout=(LinearLayout)findViewById(R.id.ll);

        tv2=(TextView)findViewById(R.id.tv2);

        //动态布局,只有java里面有TextView。

        for(int i=0;i<20;i++){

            //实例化LinearLayout中的TextView

            TextView tv=new TextView(this);

            //tv.append("Text:"+i);

            tv.setOnTouchListener(this);

            tv.setText("Text:"+i);

            tv.setTextColor(Color.WHITE);

            //给LinearLayout中添加部件TextView

            linearlayout.addView(tv);

        }

    }

    @Override

    public boolean onTouch(View v, MotionEvent event) {

        if(event.getAction()==MotionEvent.ACTION_DOWN){

            CharSequence text=((TextView)v).getText();

            Toast.makeText(this, text, Toast.LENGTH_LONG).show();

            tv2.setText(text);

        }

        return true;

    }

 

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:tools="http://schemas.android.com/tools"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    tools:context=".MainActivity" >

    <

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值