前言

大家好,我是 Vic,今天给大家带来Android精通教程V的概述,希望你们喜欢

Android精通教程V_第1张图片 封面

前言

如果你想学习Android开发,那你就要了解Java编程,这是基础,也是重点,如果没学Java语法就先学习,再来学Android,别问可不可以先学Android,都告诉了,先学Java对吧!

Android开发的基本了解

Android开发主要了解这四种重要组件:

  • activity为用户界面,就是说activity可以构成用户界面。
  • ContentProvider是为了设备中存储的数据,通过创建ContentProvider来实现数据共享。
  • Service是运行在后台的任务,无需用户直接与之交互。
  • Intent是一种行为描述机制(如选择照片,打电话等)。在Android中,几乎一切都是通过Intent来实现的,这给我们提供了大量替换或重用组件的机会。

描述Android项目结构

AndroidManifest.xml:是一个xml文件,描述了被构建的应用程序。
assets:文件夹是为了存放需要打包到应用程序的静态文件。
bin:文件夹是为了存放编译过后的应用程序。
gen:文件夹为了存放生成的源代码。
libs:文件夹是存放第三方包的jar文件。
src:文件夹是程序的Java源代码。
res:文件夹存放的是应用程序的资源。
在res文件夹中:
res/drawable/:存放的是图像
res/layout/:存放是基于xml的文件。
res/menu/:存放的是基于xml的菜单文件。
res/raw/:存放的是通用的文件。
res/valuse/:存放的是字符串。
res/xml/:是通用的xml的文件。
在bin文件夹中:
bin/classes/:存放的是编译后的Java类文件。
在AndroidManifest.xml文件中:

<?xml version="1.0" encoding="utf-8"?>                                                                                                            

了解一下build.gradle(app)

apply plugin: 'com.android.application'android {    compileSdkVersion 26    defaultConfig {        applicationId "cn.edu.gdmec.android.androidstudiodemo"        minSdkVersion 19        targetSdkVersion 26        versionCode 1        versionName "1.0"        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"    }    buildTypes {        release {            minifyEnabled false            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'        }    }}dependencies {    implementation fileTree(dir: 'libs', include: ['*.jar'])    implementation 'com.android.support:appcompat-v7:26.1.0'    implementation 'com.android.support.constraint:constraint-layout:1.0.2'    testImplementation 'junit:junit:4.12'    androidTestImplementation 'com.android.support.test:runner:1.0.1'    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'}

了解基本布局的部件

TextView:了解android:typeface,android:textStyle,android:textColor.
EditText:编辑框android:autoText,android:capitalize,android:digitas,android:singleLine.
内边距:android:paddingLeft,android:paddingRight,android:paddingTop,android:paddingBottom
RelativeLayout布局:android:layout_alignParentTop,android:layout_alignParentBottom,android:layout_alignParentLeft,android:layout_alignParentRight,android:layout_centerHorizontal,android:layout_centerVertical,android:centerHorizontal,android:layout_centerInParent.
android:layout_above,android:layout_below,android:layout_toLeftOf,android:layout_toRightOf,android:layout_alignTop, android:layout_alignBottom,android:layout_alignLeft,android:layout_alignRight,android:layout_alignBaseline.
TableLayout布局:
android:stretchColumns,android:shrinkColumns,android:collapseColumns.

//TableLayout          

适配器

Sting[] items={"h","j","k","a","s","d","b"};new ArrayAdapter(this,android.R.layout.simple_list_item_1,items);
<?xml version="1.0" encoding="utf-8"?>
public class ListViewDemo extends ListActivity{ TextView selection; String[] items={"a","b","c","d","e","f","g"}; @Override protected void onCreate(Bundle savedInstanceState) {   super.onCreate(savedInstanceState);   setContentView(R.layout.activity_main);   setListAdapter(new ArrayAdapter(this,android.R.layout_simple_list_item_1,items));   selection= findViewById(R.id.selection);} public void onListItemClick(ListView parent,View v,int position,long id){  selection.setText(items[position]); }}

网格

GridView:android:numColumns,android:verticalSpacing,android:horizontalSpacing,android:columnWidth,android:stretchMode.

//适配器<?xml version="1.0" encoding="utf-8"?>
public class AutoCompleteDemo extends Activity implements TextWatcher{ TextView selection; AutoCompleteTextView auto; String[] items={"aaav","bbbv","cccv","dddv","eeev","fffv","gggv"}; @Override protected void onCreate(Bundle savedInstanceState) {   super.onCreate(savedInstanceState);   setContentView(R.layout.activity_main);   selection=findViewById(R.id.selection);   auto=findViewById(R.id.auto);   auto.addTextChangedListener(this);   auto.setAdapter(new ArrayAdapter(this,android.R.layout_simple_item_1,items));} public void onTextChanged(CharSequence s, int start, int before, int count){  selection.setText(auto.getText());}}

Gallery

Gallery:android:spacing,android:spinnerSelector,android:drawSelectorOnTop

//适配器<?xml version="1.0" encoding="utf-8"?>
public class Demo extends ListActivity{ TextView selection; String[] items = { "aaaa","asdg","bsdes","slfl","wete","wetwd","sdfefs"};@Override protected void onCreate(Bundle savedInstanceState) {   super.onCreate(savedInstanceState);   setContentView(R.layout.activity_main);   setListAdapter(new ArrayAdapter(this, R.layout.simple,R.id.label,items));   selection=findViewById(R.id.selection);}public void onListItemClick(ListView parent,View v,int position,long id){ selection.setText(items[position]); }}
//动态的列表public class Demo extends ListActivity{ TextView selection; String[] items = { "aaaa","asdg","bsdes","slfl","wete","wetwd","sdfefs"};@Override protected void onCreate(Bundle savedInstanceState) {   super.onCreate(savedInstanceState);   setContentView(R.layout.activity_main);   setListAdapter(new IconAdapter());   selection=findViewById(R.id.selection);}public void onListItemClick(ListView parent,View v,int position,long id){ selection.setText(items[position]); }class IconAdapter extends ArrayAdapter { IconAdapter(){  super(Demo.this,R.layout.simple,items); } public View getView(int position, View convertView, ViewGrop parent){ LayoutInflater inflater=getLayoutInflater(); View simple = inflater.inflate(R.layout.simple,parent,false); TextView label=simple.findViewById(R.id.simple); label.setText(items[position]); ImageView icon = simple.findViewById(R.id.icon); icon.setImageResource(R.drawable.icon);}

日期与时间

DatePickerDatePickerDialog->DatePickerDialog-->OnDateChangedListenerOnDateSetListener
TimePickerTimePickerDialog->TimePickerDialog-->OnTimeChangedListenerOnTimeSetListener
主要示例代码:

Calendar dateTime = Calendar.getInstance();
//日期DatePickerDialog.OnDateSetListener d=new DatePickerDialog.OnDateSetListener(){ public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth){  dateTime.set(Calendar.YEAR,year);  dateTime.set(Calendar.MONTH,monthOfYear);  dateTime.set(Calendar.DAY_OF_MONTH,dayOfMonth);  updateLabel();  }};
//时间TimePickerDialog.OnTimeSetListener t=new TimePickerDialog.OnTimeSetListener(){ public void onTimeSet(TimePicker view, int hourOfDay, int minute){  dateTime.set(Calendar.HOUR_OF_DAY,hourOfDay);  dateTime.set(Calender.MINUTE,minute);  updateLabel();  }};
//日期的点击按钮Button btn=findViewById(R.id.date);btn.setOnClickListener(new View.OnClickListener(){ public void onClick(View v){  new DatePickerDialog(Demo.this,d,dateTime.get(Calendar.YEAR),dateTime.get(Calendar.MONTH),dateTime.get(Calendar.DAY_OF_MONTH)).show(); }});
//时间的点击按钮Button btn=findViewById(R.id.time);btn.setOnClickListener(new View.OnClickListener(){ public void onClick(View v){  new TimePickerDialog(Demo.this,t,dateTime.get(Calendar.HOUR_OF_DAY),dateTime.get(Calendar.MINUTE),true).show(); }});
//显示CalendardateTimetv.getTime();// dtl.format();

创建时钟

DigitalClockAnalogClock

<?xml version="1.0" encoding="utf-8"?>  

进度条(android.widget.ProgressBar)

进度条可以是水平的,也可以是旋转轮,你可以用incrementProgressBy()来增加进度,也可以用setProgress()来增加进度。

进度条有很多样式,Android提供了这些:

  • Widget.ProgressBar.Horizontal
  • Widget.ProgressBar.Small
  • Widget.ProgressBar.Large
  • Widget.ProgressBar.Inverse
    等。

android.widget.SeekBar
这个是ProgressBar的扩展,这个是可以滑动选择的进度形式。

用户可以通过 SeekBar.OnSeekBarChangeListener来操作滑块的位置。

适配器-android.widget.Adapter

它的子类有:arrayadapter,baseadpter,cursoradapter,listadapter,simpleadapter,spinneradapter

WebView

android.webkit.WebView
这里的WebView是显示网页的视图,当我们要在WebView中加载网页的时候,,我们要在android manifest.xml中添加权限。

  

如何用代码,以下显示:

 Uri uri = Uri.parse(url); Intent intent = new Intent(Intent.ACTION_VIEW, uri); startActivity(intent);

显示

WebView webview = new WebView(this); setContentView(webview);

进行加载:

webview.loadUrl(url);

显示框

public void onClick(View view){ if(view==button1){  new AlertDialog.Builder(this).setTitle("Message").setMessage("ok").setNeutralButton("Close", new DialogInterface.OnClickListener(){   public void onClick(DialogInterface dialog, int in){   }  }).show();}

总结

  • 本文讲了Android精通教程V,如果您还有更好地理解,欢迎沟通
  • 定位:分享 Android&Java知识点,有兴趣可以继续关注

更多相关文章

  1. Android 原始资源文件的使用详解
  2. Android中如何获取视频文件的缩略图
  3. Android 根文件系统分析(2)
  4. 什么是APK文件
  5. 【Android FFMPEG 开发】Android Studio 工程配置 FFMPEG ( 动态

随机推荐

  1. Android开发20——单个监听器监听多个按
  2. 带有CheckBox的ListView,实现删除和选中功
  3. Android开发者指南(12) —— Android(安
  4. Android RILD学习
  5. 【Android自学笔记】Android获取手机和存
  6. Android实现简单购物车功能
  7. Android(安卓)NDK 编译移植FFmpeg2.5
  8. 剖析Android程序结构-----Android新手入
  9. android popwindow 解决opengl层叠上面的
  10. android 卸载应用、打开应用、获得系统中