1.Android项目的结构介绍
drawable下面存放不同密度的图片资源。比如这个下面存放不同分辨率的图片,运行在不同分辨率的屏幕上时会自动调用。
layout存放不同布局文件:xml文件。menu也是布局文件,菜单目录。
values存放字符串,主题,颜色,样式等资源文件。
2.两个简单控件
TextView:显示文本框控件。
EditView:输入文本框。会多出来两个属性:hint:输入提示文本。inputType:输入文本类型。
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello World!" android:id="@+id/textView3" />
layout_width下面有三个属性值:wrap_content包裹实际文本长度。
match_parent当前控件铺满父类容器。2.3API之后添加8的一个属性值。
fill_parent当前控件铺满父类容器。2.3之后添加的一个属性值。
3.imageView:显示图片的控件
属性有src,backgriund等属性。
例如:imageView中的src引用的图片放在drawable中,能根据手机分辨率的不同来调用不同分辨率的图片。例如:低分辨率的手机对应—
_ldpi,中分辨率的对应_mdpi,高分辨率的对应_hdpi,更高分辨率的对应_xhdpi。
4.按钮控件:Button和ImageButton
相同点:两者都能产生一个事件点击按钮。
不同点:Button有text属性,ImageButton有src属性。(Button和smallButton的区别在于smallButton有个style的属性)
例如:<Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/button_name" android:id="@+id/button" android:layout_below="@+id/textView2" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" />这里的text中不直接写入button的值,而是将具体的值写在string.xm中,运用这样的形式,<string name="button_name">登陆</string>。
5.Button 和 ImageButton的监听事件。
1.都有一个onClick事件,通过自身的.setOnClickListener(OnClickListener)方法添加点击事件。
2.所有的控件都有监听事件。
监听事件的几种写法:
1.匿名内部类的实现。
初始化一个控件,通过findViewById返回一个View对象。下一步设置一个Button监听器。
private Button loginButton; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); loginButton = (Button)findViewById(R.id.button); loginButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Toast.makeText(MainActivity.this,"要执行",1).show(); } });/*返回一个View的对象,View是所有控件的父类。并且R.id中的R是R.java中的,里面包含一个 id的类,是这样查找的*/
2.独立类的实现。
这个不常用,当要执行同一个动作的时候用外部类,可以减少代码的冗余。
3.实现接口的方式实现。
public class MainActivity extends AppCompatActivity implements View.OnClickListener { private Button loginButton; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); loginButton = (Button)findViewById(R.id.button); loginButton.setOnClickListener(this); } @Override public void onClick(View v) { Toast.makeText(MainActivity.this,"第三种方法",1).show(); } }