美文网首页
边做iOS边学Android(二):认识几个常用的控件

边做iOS边学Android(二):认识几个常用的控件

作者: 幂琪有天 | 来源:发表于2016-10-27 11:28 被阅读171次

    <a href="http://www.jianshu.com/p/866e5b20c02d">边做iOS边学Android(一):新建一个project</a>
    趁着这几天进度不赶,把学了几天的笔记整理整理。过个几天可能要抽空学然后抽空写,会比较慢。
    对了,昨天找朋友拿了本郭霖大大写的《第一行代码Android》,跟现在差的时间比较长,我也没更多精力去换(主要是懒+抠门)。相信有个基本的教程再加上自己Google+Baidu,入门应该基本没问题

    上次建了一个工程感受了下,这次就多创建几个控件。不着急慢慢来,东西看上去多,写起来分分钟的事情

    首先可以点左上角这边的小齿轮,勾上Autoscroll to Source,这样点选文件的时候不用双击=。=不过每次新建工程都要勾,不知道有没有可以一劳永逸的办法,知道的大爷透露下啊。


    two_scroll_to_source.jpeg

    回顾:
    昨天就只是创建了一个Activity,主要的就是以下几个:

    • a. java代码里创建的Activity要有一个layout与它对应
    • b. 在Activity里,通过setContentView(R.layout.layoutName)可以加载这个布局,否则啥都看不到
    • c.对于主Activity (相当于window的rootViewController)要在manifest里注册<intent-filter>
    • d. src是资源文件夹,里面的文件引用(用strings为例):
      • 在xml里用@stirngs/yourName引用,
      • 在java代码里用getResource().getString(R.string.yourName)
    • 控件要有id,这样才可以在Activity里拿到它

    开始:

    • 1.新建一个工程,就叫UIWidget,这一次创建的时候就让它加一个empty的Activity,我们也阔以看看跟上次自己建的有啥区别。

    • 2.首先说一下Android里字体单位是sp,长度单位是dp。因为安卓手机相同尺寸屏幕的分辨率天差地别,如果用px作单位,那么控件的大小显示出来不一样。而dp根据像素密度去计算出相应的像素数然后显示。

      • 2.1 假如一台手机屏幕的尺寸是1.5英寸x2英寸,屏幕分辨率为240x320,那么每英寸包含的像素点的数量为240/1.5=160dpi(横向)或320/2=160dpi(纵向)
      • 2.2 按照公式 px = dp * (api/160)就得出最终的像素数啦。
      • 2.3 在工程列表里一定看到mipmap-hdpi/mdpi/xhdpi/xxhdpi/xxxhdpi,系统会根据各种像素密度的手机从里面加载对应的图片。具体怎么裁图片后面用到了再说
    • 3.建几个常用的控件。

      • 3.1 建一个Button。这几个属性没什么好说的。包括怎么引用按钮的标题和文本颜色,至于按钮的其他属性大伙自己试。
    <Button android:layout_width="match_parent"
                android:layout_height="wrap_content"              
                android:id="@+id/button"    
                android:text="@string/button_title"
                android:textSize="24sp"    
                android:textColor="@color/button_title_color"/>
    
    • 3.2 学个常用的Toast(在iOS里之前还经常用MBProgressHUD)。这里有3个参数,第一个是上下文,一般就是Activity啦,第二个是提示的文字,可以在strings里定义,也可以直接写,最后一个是这个提示存活的时间,LENGTH_SHORT(2s) 或者 LENGTH_LONG(3.5s)
    Toast.makeText(MainActivity.this,"提示文字",Toast.LENGTH_SHORT).show();
    
    • 3.2 在Activity就可以这么用。用findViewById(R.id.id的name)获取到view,需要转一下类型,然后添加一个点击的监听
    Button btn = (Button)findViewById(R.id.button);
    btn.setOnClickListener(new View.OnClickListener() {    
    @Override    
    public void onClick(View v) {
                Toast.makeText(MainActivity.this,"劳资是个提示",Toast.LENGTH_SHORT).show();
    }});
    

    添加监听还有一种:

    public class MainActivity extends Activity implements View.OnClickListener 
    
    Button btn = (Button)findViewById(R.id.button);
    btn.setOnClickListener(this);
    
    @Override
    public void onClick(View v) {    
        Toast.makeText(MainActivity.this,"劳资是个提示",Toast.LENGTH_SHORT).show();
    }
    

    从代码上看第二个跟iOS更像,但是敲起来我喜欢第一个,因为第二个特么?没?提?示???

    • 3.3 建个EditView(就是UITextView,而安卓的TextView是iOS的UILabel)。一样的,在layout里添加布局,在Activity里引用。这里的hint属性就是placeholder,占位的字符(可惜iOS里的textView没这玩意,每次还搞个lable监听编辑状态,wtf)
    <EditText android:layout_width="match_parent"
                  android:layout_height="wrap_content"
                  android:id="@+id/editText"
                  android:hint="@string/text_view_holder"
                  android:textSize="22sp"
                  android:textColor="@color/textView_text_color"/>
    
    • 3.4 建个ImageView,这里的src就是图片
    <ImageView android:layout_width="wrap_content"
                   android:layout_height="wrap_content"
                   android:id="@+id/imageView"    
                   android:src = "@mipmap/ic_launcher"/>
    
    • 3.5 改一下,点击按钮的时候获得EditView里的文字
    @Overridepublic 
    void onClick(View v) {
            EditText editText = (EditText)findViewById(R.id.editText);
            String showStr = editText.getText().toString();
            Toast.makeText(MainActivity.this,showStr,Toast.LENGTH_SHORT).show();
    }
    
    • 3.6 跑起来,点🐔按钮
    two_final.png

    下次就说下Activity的生命周期,然后多创建几个,让他们可以通信。👋

    相关文章

      网友评论

          本文标题:边做iOS边学Android(二):认识几个常用的控件

          本文链接:https://www.haomeiwen.com/subject/ysfjuttx.html