…各种基本应用
1、连接一个URL代码
Uri uri=Uri.parse("URL地址");
Intent intent=new Intent(Intent.ACTION_VIEW, uri);
startActivity(intent);
2、Menu
每个菜单都包含两个部分:
1.)建立菜单
"onCreateOptionsMenu" 函数即菜单列的主体。在Android 机器或模拟器上按下硬体的"Menu"(菜单)键,所弹出的菜单列即是靠"onCreateOptionsMenu"函数来定义。当我们在Activity 中定义了 "onCreateOptionsMenu" 之后,按下"Menu" (菜单)键时,就会弹出相对应的菜单列。
Android 每个页面对应到一个 Activity,每个 Activity 都有一个独立的菜单列。对传入的"menu"参数作处理就能改变菜单列的内容。
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu) ;
menu.add(int groupId, int itemId, int order, CharSequence title) ;
… …
return super.onCreateOptionsMenu(menu) ;
}
2)处理选项动作
当我们在 Android 应用程序的菜单列上选择了相应的选项后,则是依赖
"onOptionsItemSelected"函数,来负责处理菜单列中各选项所个别对应的动作。
public boolean onOptionsItemSelected(MenuItem item) {
super.onOptionsItemSelected(item) ;
return super.onOptionsItemSelected(item) ;
}
3、Android清单
Android 系统与其他系统很不一样的地方是:它的应用程序并不直接与底层系统紧密结合,而是跑在 Android 框架中。
在执行"startActivity"函数时,应用程序并不是直接呼叫另一个 Activity,而是将"Intent"(意图)传进Android 框架中。 Android 框架会查看 "startActivity" 呼叫所传入的动作与 Intent 内容是否在注册表中,如果符合,就启动对应的服务或 Activity。
Android 系统中的每一个应用程序,在安装的过程里,都得事先在 Android 框架中注册、登记这个应用程序所建立的 Activity,并事先注明会使用到的服务。
8、Android的字体
1)字体风格Typeface的种类
int Style类型 Typeface类型
BOLD:粗体 DEFAULT:默认字体
BOLD_ITALIC:粗斜体 DEFAULT_BOLD:默认粗体
ITALIC:斜体 MONOSPACE:单间隔字体
NORMAL:普通字体 SANS_SERIF:无衬线字体
SERIF:衬线字体
2)设置字体
①、Typeface.create(Typeface family, int style):创建一个混合型新的字体。
②、Typeface.setTypeface(Typeface tf, int style):设置一个混合型字体。
③、Typeface.setTypeface(Typeface tf):设置一个只有Typeface风格的字体。
9、在代码中更改TextView文字的颜色
1)在代码中由ID获取TextView
TextView text =(TextView)findViewById(R.id.TextViewID);
//该TextViewID是在main.xml中定义TextView时设置的。
2)获取Resources 对象
Resources myColor_R=getBaseContext().getResources();
//getBaseContext()获得基础Context
//getResources()从Context获取资源实例对象
3)获取Drawable对象
Drawable myColor_D=myColor_R.getDrawable(R.color.white);
//R.color.white是在strings.xml中定义的一个color值如下:
//<color name=”white”>#FFFFFF</color>
4)设置文本背景颜色
text.setBackgroundDrawable(myColor_D);
5)利用android.graphics.Color 的颜色静态变量来改变文本颜色
text.setTextColor(android.graphics.Color.RED);
//text.setTextColor(Color.RED) ;
10、取得手机屏幕大小
//使用DisplayMetrics类取得手机画面的宽高。
DisplayMetrics displayMetrics = new DisplayMetrics() ;
//DisplayMetrics是一个描述普通显示信息的结构,如显示大小、密度、字体尺寸等。
getWindowManager().getDefaultDisplay().getMetrics(displayMetrics) ;
//getWindowManager():获取显示定制窗口的管理器
//getDefaultDiaplay():获取默认显示Display对象
//getMerics(DisplayMetrics dm):通过Display对象的数据来初始化一个
//DisplayMetrics对象。
int widthPix = displayMetrics.widthPixels ;
int heightPix = displayMetrics.heightPixels ;
11、标题、状态栏的隐藏
1)隐藏标题
requestWindowFeature(Window.FEATURE_NO_TITLE) ;
2)隐藏状态栏(全屏效果)
//隐藏标题
requestWindowFeature(Window.FEATURE_NO_TITLE) ;
//定义全屏参数
int flag = WindowManager.LayoutParams.FLAG_FULLSCREEN ;
//获取窗口对象
Window myWindow = this.getWindow() ;
//设置flag标识
myWindow.setFlags(flag, flag) ;
12、EditText
1)setOnKeyListener事件
(new EidText).setOnKeyListener(new OnKeyListener() {
public boolean onKey(View v, int keyCode, KeyEvent event) {
… …
return false;
}
}) ;
13、Button(包括各种button)
1)ImageButton
①、设置ImageButton的图标
imagebutton.setImageResource(int resId//R.drawable.imageName) ;
//设置背景图片
imagebutton. .setBackgroundResource(R.drawable.imageName);
②、setOnFocusChangeListener事件
imagebutton.setOnFocusChangeListener(new OnFocusChangeListener() {
public void onFocusChange(View v, boolean hasFocus) {
… …
}
}) ;
③、setOnClickListener事件
imagebutton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
… …
}
}) ;
14、Toast
1)Toast的浮动小提示
android.widget.Toast.makeText(Context context, CharSequence text, int duration)
.show() ;
2)Toast显示一个ImageView
//新建一个Toast对象
Toast toast_showImageView = new Toast(this) ;
//创建新ImageView对象
ImageView imageView = new ImageView(this) ;
//从资源中获取图片,设置ImageView的背景图
imageView.setImageResource(R.drawable.imageName) ;
//(设置ImageView的背景图)或
imageView.setImageDrawable(getResources().getDrawable(R.drawable.imageName)) ;
//设置Toast上的View--(ImageView)
toast_showImageView.setView(imageView) ;
//设置Toast显示时间
toast_showImageView.setDuration(Toast.LENGTH_LONG) ;
//显示Toast
toast_showImageView.show() ;
3)Toast显示一个Button
//使用Toast显示一个Button
Toast toast_button = new Toast(this) ;
//创建一个Button
Button button_toast = new Button(this) ;
button_toast.setText("OK") ;
//设置Toast上的View--(Button)
toast_button.setView(button_toast) ;
//设置Toast的显示时间
toast_button.setDuration(Toast.LENGTH_SHORT) ;
//显示Toast
toast_button.show() ;
15、AlertDialog.Builder提示对话框
//新建一个AlertDialog.Builder对象
AlertDialog.Builder aDiaBuilder = new AlertDialog.Builder(this) ;
//设置标题
aDiaBuilder.setTitle("一个AlertDialog.Builer对话框") ;
//设置显示消息
aDiaBuilder.setMessage("AlertDialog Builder提示消息对话框") ;
//显示该AlertDialog.Builder对象
aDiaBuilder.show() ;
16、CheckBox
CheckBox checkBox = new CheckBox(this) ;
//设置chckBox的标题
checkBox.setHint(CharSequence title) ;
//设置该CheckBox是否为被选中
checkBox.setChecked(boolean checked) ;
//判断CheckBox是否已经被选中
boolean checkBox.isChecked() ;
//CheckBox事件监听器
checkBox.setOnCheckedChangeListener(new OnCheckedChangeListener() {
public void onCheckedChanged(CompoundButton buttonview, boolean isChecked)
{ … … }
}) ;
17、RadioButton
//新建一个RadioGroup
RadioGroup radioGroup = new RadioGroup(this) ;
//新建一个RadioButton
RadioButton radio_01 = new RadioButton(this) ;
//设置RadioButton的标题
radioButton.setText("RadioButton name") ;
//将RadioButton添加到RadioGroup中
radioGroud.addView(radioButton) ;
//添加RadioGroup事件监听器
radioGroup.setOnCheckedChangeListener(new OnCheckedChangeListener() {
public void onCheckedChanged(RadioGroup group, int checkedId) {
… …
}
}) ;
18、Spinner(下拉菜单)
private Spinner spinner ;
spinner = (Spinner)findViewById(R.id.spinnerID) ;
//下拉菜单需要显示菜单项信息
private static final String[] itemInfo = {"…", "…"} ;
private ArrayAdapter<String> adapter ;
//动画效果
private Animation anim ;
//取得取得Animation,自定义在res/anim目录(自定义的)下
anim = AnimationUtils.loadAnimation(this, R.anim.my_anim) ;
//给下拉菜单添加动画
//将Spinner 运行Animation
spinner.startAnimation(anim) ;
//初始化下拉菜单内容适配器
adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item,
itemInfo) ;
//给下拉菜单内容设置样式
//myspinner_dropdown为自定义下拉菜单,样式定义在res/layout目录下
adapter.setDropDownViewResource(R.layout.myspinner_dropdown) ;
//给下拉菜单设置内容适配器
//将ArrayAdapter添加到Spinner
spinner.setAdapter(adapter) ;
//下拉菜单弹出的内容选项被选中事件处理
spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
public void onItemSelected(AdapterView<?> arg0, View arg1,int arg2, long arg3) {
… …
arg0.setVisibility(View.VISIBLE) ;
}
public void onNothingSelected(AdapterView<?> arg0) {
… …
}
}) ;
//下拉菜单弹出的内容选项,触屏事件处理
spinner.setOnTouchListener(new OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
// 将Spinner 运行Animation
v.startAnimation(anim);
//将mySpinner 隐藏
v.setVisibility(View.INVISIBLE);
return false;
}
}) ;
//下拉菜单弹出的内容选项,焦点改变事件处理
spinner.setOnFocusChangeListener(new OnFocusChangeListener() {
public void onFocusChange(View v, boolean hasFocus) {
… …
}
}) ;
//①、定义创建一个List<T>,用于存放菜单项字符串
private String[] itemInfo ;
private List<String> itemList ;
//初始化字符串数组
itemInfo = new String[] { "…", "…"} ;
//初始化List实例ArrayList的对象
itemList = new ArrayList<String>() ;
//遍历,把字符串数组添加到ArrayList中
for(int i=0; i<itemInfo.lenght; i++) {
itemList.add(itemInfo[i]) ;
}
//②、定义创建一个ArrayAdapter<String>
private ArrayAdapter<String> adapter ;
//这里应该使用List<> ,如果使用String[]则会出错
//初始化下拉菜单的内容适配器
adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item,
itemList) ;
//③、设置ArrayAdapter<String>在下拉菜单中的显示布局
//设置下拉菜单显示内容的风格
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item) ;
//④、给下拉菜单添加内容Adapter适配器
//给下拉菜单对象添加内容适配器
spinner.setAdapter(adpater) ;
19、AutoCompleteTextView(自动提示输入框)
AutoCompleteTextView autoText = new AutocompleteTextView(this) ;
// nomalStr用于存储提示的内容
String[] nomalStr = new Stirng[] {“…”, “…”, “…”} ;
adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_dropdown_item_1line, nomalStr) ;
//给自动完成输入框添加内容适配器
autoText.setAdapter(adapter) ;
// 问题:该自动提示输入框要输入两个及以上字符才会提示,而一个字符则不会提示
20、MultiAutocompleTextView
MultiAutoCompleteTextView multiAutoText = new MultiAutoCompleteTextView(this) ;
// nomalStr用于存储提示的内容
String[] nomalStr = new Stirng[] {“…”, “…”, “…”} ;
adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_dropdown_item_1line, nomalStr) ;
//添加内容适配器
multiAutoText.setAdapter(adapter) ;
//设置Tokenizer来确定用户输入文本的相关范围
multiAutoText.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer()) ;
21、AnalogClock、DigitalClock与线程时钟
1)AnalogClock与DigitalClock
AnalogClock(模拟时钟)与DigitalClock(数字时钟)都可以通过在main.xml中设置实现。
2)线程时钟
①、线程时钟则需要线程Thread、Handler(发送、处理消息)辅助实现。
private TextView view_threadClock ; //用于显示线程时间
private final int msg_Key = 0x1234;// 发送的消息内容
public Handler myHandler;// 发送、处理消息的类
public Calendar myCalendar;// 日历类
// 时、分、秒
private int hour ;
private int minute ;
private int second ;
// 处理时间的线程
private Thread thread ;
②、Thread实现部分
/* 实现一个Runable接口,实例化一个进程对象,用来持续取得系统时间*/
public void run() {
// TODO Auto-generated method stub
try {
do {
long time = System.currentTimeMillis() ;
myCalendar = Calendar.getInstance() ;
myCalendar.setTimeInMillis(time) ;
hour = myCalendar.get(Calendar.HOUR) ;
minute = myCalendar.get(Calendar.MINUTE) ;
second = myCalendar.get(Calendar.SECOND) ;
//进程休息1秒
Thread.sleep(1000) ;
Message msg = new Message() ;
msg.what = msg_Key ;
myHandler.sendMessage(msg) ;
} while(thread.isInterrupted()==false) ;
} catch(Exception ie) {
ie.printStackTrace() ;
}
}
③、Handler应用
myHandler = new Handler() {
public void handleMessage(Message msg) {
super.handleMessage(msg) ;
switch(msg.what) {
case msg_Key :
{
/* 在这处理要TextView对象Show时间的事件*/
if(second<10) {
view_threadClock.setText(hour + ":" + minute + ":0" + second);
} else {
view_threadClock.setText(hour + ":" + minute + ":" + second);
}
break ;
}
default :
break ;
}
} // end switch(msg.what)
};
④、启动应用
/* 通过进程来持续取得系统时间*/
thread = new Thread(this) ;
thread.start() ;
22、DatePicker
DatePicker datePicker = new DatePicker(this) ;
/*为日历设置器添加点击事件监听器,处理设置日期事件*/
dataPicker.init(int year, int month, int day, new OnDateChangedListener() {
public void onDateChanged(DatePicker view, int yearCh,
int monthOfYear, int dayOfMonth) {
… …
}
}) ;
23、TimePicker
TimePicker timePicker = new TimePicker(this) ;
/* 为时间设置器添加点击事件监听器,处理设置时间事件 */
timePicker.setOnTimeChangedListener(new OnTimeChangedListener() {
public void onTimeChanged(TimePicker view, int hourOfDay, int minuteCh) {
… …
}
}) ;
/* 设置24小时制 */
timePicker.setIs24HourView(boolean is24HourView) ;
24、DatePickerDialog(设置日期对话框)
/* 构造一个DatePickerDialog对象,
* 第一个参数为Context、
* 第二参数为日期修改事件处理监听器、
* 后面为初始化的年月日 */
DatePickerDialog datePickerDialog = new DatePickerDialog(Context context,
OnDateSetListener dateSetListener,
int year, int month, int day) ;
/* 显示日期设置对话框 */
datePickerDialog.show() ;
/* 日期设置监听器 */
OnDateSetListener dateSetListener = new OnDateSetListener() {
public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) { .. …
}
} ;
25、TimePickerDialog(设置时间对话框)
/* 构造一个TimePickerDialog对象,第一个参数为Context、
* 第二个参数为时间修改事件监听器、后面两个为初始化时间,
* 最后一个boolean类型设置是否为24小时制 */
TimePickerDialog timePickerDialog = new TimePickerDialog(Context context, OnTimeSetListener timeSetListener,
int hour, int minute, boolean is24HourView) ;
/* 显示时间设置对话框 */
timePickerDialog.show() ;
/* 时间设置监听器 */
OnTimeSetListener timeSetListener = new OnTimeSetListener() {
public void onTimeSet(TimePicker view, int hourOfDay, int minuteCh) {
… …
}
} ;
26、文件的操作
1)读文件
①、Context.openFileInput(String name)打开一个与应用程序联系的私有文件输入流。
②、当文件不存在时抛出FileNotFoundException异常。
FileInputStream in = this.openFileInput("test.txt"); //打开文件"test.txt"
……
in.close(); //关闭输入流
2)读取静态文件
①、要打开打包在应用程序中的静态文件,使用Resources.openRawResource(R.raw.myFile)
②、该文件必须放在文件夹res/raw/中。
//获得Context资源
InputStream in = this.getResources().openRawResource(R.raw.myFile);
… …
in.close();//关闭输入流
3)写文件
①、Context.openFileOutput(String name, int mode)开启一个与应用程序联系的私有文件输出流。
②、当文件不存在时该文件将被创建。
③、文件输出流可以在添加模式中打开,这意味新的数据将被添加到文件的末尾。
// 打开文件"test.txt"进行写操作、使用MODE_APPEND在添加模式中打开文件
FileOutputStream out = this.openFileOutput("test.txt", MODE_APPEND) ;
……
out.close(); // 关闭输出流
4) dimens.xml
用来定义尺寸数据,在 Activity 中使用 getResources().getDimension(resourceId)
取得这些资源
<?xml version="1.0" encoding="UTF-8"?>
<resources>
<dimen name="height">80dip</dimen>
</resources>
5) styles.xml
定义样式。
1. <?xml version="1.0" encoding="utf-8"?>
2. <resources>
3. <style name="sharpText">
4. <item name="android:textSize">18px</item>
5. <item name="android:textColor">#008</item>
6. </style>
7. </resources>
1) R.resource_type.resource_name
Eg.R.drawable.icon
2) android.R.resource_type.resource_name
Android 系统本身自带了很多的资源,我们也可以进行引用,只是需要在前面加上 “android.”以声明该资源来自 Android 系统。
2. 在 XML 文件中引用资源的语法如下:
1) @[package:]type/name
2) 如果访问的是 Android 系统中带的文件,则要添上包名“android:”。如 android:textColor="@android:color/red"。