您的位置:首页 > 移动开发 > Android开发

Android 开发需要知道的一些基本概念

2016-07-27 14:14 686 查看
1,Android Activity 是什么概念?

Android 中,Activity 是所有程序的根本,所有程序的流程都运行在Activity 之中,Activity可以算是开发者遇到的最频繁,也是Android 当中最基本的模块之一。在Android的程序当中,Activity 一般代表手机屏幕的一屏。如果把手机比作一个浏览器,那么Activity就相当于一个网页。在Activity 当中可以添加一些Button、Check
box 等控件。可以看到Activity 概念和网页的概念相当类似。

一般一个Android 应用是由多个Activity 组成的。这多个Activity 之间可以进行相互跳转,例如,按下一个Button 按钮后,可能会跳转到其他的Activity。和网页跳转稍微有些不一样的是,Activity 之间的跳转有可能返回值,例如,从Activity A 跳转到Activity B,那么当Activity B 运行结束的时候,有可能会给Activity
A 一个返回值。这样做在很多时候是相当方便的。

当打开一个新的屏幕时,之前一个屏幕会被置为暂停状态,并且压入历史堆栈中。用户可以通过回退操作返回到以前打开过的屏幕。我们可以选择性的移除一些没有必要保留的屏幕,应为Android会把每个应用的开始到当前的每个屏幕保存在堆栈中。

2,MainActivity 主活动类定义了什么?

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
onCreate() : 初始化你的activity, setContentView() : 对你的Activity屏幕添加内容。 R.layout.activity_main : 指向res/layout 路径下的activity_main.xml 文件, 该文件定义了活动页的UI,因此我们可以修改该文件。运行时,Android来解析和实例化在activity_main.xml
定义的资源,并可视化。

3,为什么Android要用XML文件,会不会不高效?

XML冗长,占内存大,而手机相对内存少,使用XML文件是不是有点儿不高效。实际上,手机中存储的XML文件是一种已经被压缩的二进制文件的格式,不是原始的XML。

4,activity_main文件如何管理strings.xml文件?

activity_main 定义了activity屏幕的UI布局(layout)以及控件(widget)。widget 标签 例如:<TextView>, <Button>... 一些标签定义了控件的显示内容,如 android:text=“@string/main_title"/>,这里指定了所有的String显示定义在 res/values/strings.xml 文件中。

5,颜色的定义在哪里?

res/values/colors.xml

6,所有在res/values 定义的元素或者属性,都要在activity中调用方可显示出来。

7,如何给一个元素定义一个resources id?

resources id 可以通过activity xml file中定义,通过android:id=@+id/xxx

8,如何定义TableLayout?

<TableLayout
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_gravity="center"
android:stretchColumns="*" >
<TableRow>
<Button
android:id="@+id/continue_button"
android:text="@string/continue_label" />
<Button
android:id="@+id/new_button"
android:text="@string/new_game_label" />
</TableRow>
<TableRow>
<Button
android:id="@+id/about_button"
android:text="@string/about_label" />
<Button
android:id="@+id/exit_button"
android:text="@string/exit_label" />
</TableRow>
</TableLayout>
9,如何完整定义一个activity的流程?

先定义activity的layout,在res/values中定义好这个新的activity需要的字符串或者颜色。再定义activity相应的Java类(R.layout.activity_layout.xml)。再在上一级activity的java类中定义好触发到该activity的监听。最后需要做的是在AndroidManifest.xml 中声明该新的activity。

10,Theme是一个什么概念?

Theme是一组style用来定义Android控件以什么style方式显示。定义在res/values/styles.xml. 有@android:前缀意味着该style是Android本身定义的一种资源,而不是res/values/styles.xml 本地定义的。

【error】You need to use a Theme.AppCompat theme (or descendant) with this activity!

对于这错误,原因是因为我们的activity类一定是继承了兼容包中的类,也就是ActionBarActivity。所以只能使用AppCompat 的theme 才可以。

修复方法:1,将activity类改为继承Activity。 2,使用android:theme=“@style/ Theme.AppCompat.Light.Dialog

11,菜单该如何定义?

menu 定义在 res/menu/main.xml

主要有两个方法:onCreateOptionsMenu: 填充menu里的Items (R.menu.main, menu)。 onOptionsItemSelected: 选择menu里的Items。

12,Preference 表现形式 是一个什么概念?

Preference 主要用于定义程序的表现形式是什么,如何展现出来。

定义在 res/xml/settings.xml

13,Color的定义方式?

static constants: int color = Color.BLUE

call static method:color = Color.argb(127,255,0,255)

call R.color.mycolor which define in local res:color = getResources().getColor(R.color.mycolor);

14,Paint(画笔)的定义方式?

Paint paint = new Paint(); paint.setColor(Color.LTGRAY); paint.setTextSize(30);

15,Canvas(动-绘画)的定义方式?

@Override
protected void onDraw(Canvas canvas){
canvas.drawPath(circle,paint);
canvas.drawTextOnPath(Quota,circle,0,40,tpaint);
canvas.drawText(String.valueOf(count),480,320,tpaint);
}16,Drawables 的作用是什么?
Drawables 通常通过XML定义,drawable 用来定义一个颜色梯度(gradient),从一个颜色渐变到另一个颜色。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android 布局 widget 控件