android development #6 - brmlab › _media › event › android_6.pdf · android project...

26
ANDROID DEVELOPMENT #6 @brmlab středa, 27. března 13

Upload: others

Post on 07-Jun-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ANDROID DEVELOPMENT #6 - brmlab › _media › event › android_6.pdf · ANDROID PROJECT Dependencies can be mixed Maven /libs Eclipse classpath dependency (android.jar) referenced

ANDROID DEVELOPMENT

#6

@brmlab

středa, 27. března 13

Page 2: ANDROID DEVELOPMENT #6 - brmlab › _media › event › android_6.pdf · ANDROID PROJECT Dependencies can be mixed Maven /libs Eclipse classpath dependency (android.jar) referenced

UI LAYOUTS

LinearFrameTableRelativeGrid

středa, 27. března 13

Page 3: ANDROID DEVELOPMENT #6 - brmlab › _media › event › android_6.pdf · ANDROID PROJECT Dependencies can be mixed Maven /libs Eclipse classpath dependency (android.jar) referenced

VIEWGROUP

Can contain childrenSuperType for Layouts and ContainersCan contain Views and/or ViewGroups

Layouts can contain Layouts

středa, 27. března 13

Page 4: ANDROID DEVELOPMENT #6 - brmlab › _media › event › android_6.pdf · ANDROID PROJECT Dependencies can be mixed Maven /libs Eclipse classpath dependency (android.jar) referenced

LAYOUT XML FILE

Root element is singleViewGroupView

Must be XML file ( res/layouts/my_layout.xml )Can be provided multiple times (resources)

-xhdpi, -en-rGB, -sw600dp, -xlarge

středa, 27. března 13

Page 5: ANDROID DEVELOPMENT #6 - brmlab › _media › event › android_6.pdf · ANDROID PROJECT Dependencies can be mixed Maven /libs Eclipse classpath dependency (android.jar) referenced

LAYOUT PARAMS

layout_widthlayout_heightlayout_weight (of this view in parent view)layout_margin (outer spacing)layout_gravity (positioning in parent view)

středa, 27. března 13

Page 6: ANDROID DEVELOPMENT #6 - brmlab › _media › event › android_6.pdf · ANDROID PROJECT Dependencies can be mixed Maven /libs Eclipse classpath dependency (android.jar) referenced

OTHERPARAMS

gravity (inner content positioning)padding (inner spacing)weightSum (sum of all children layout_weight)id ( @id/my_id, @+id/my_id )

středa, 27. března 13

Page 7: ANDROID DEVELOPMENT #6 - brmlab › _media › event › android_6.pdf · ANDROID PROJECT Dependencies can be mixed Maven /libs Eclipse classpath dependency (android.jar) referenced

WEIGHT

ViewGroup {weightSum:4}View {weight:1}View {weight:1}View {weight:1}View {weight:1}

středa, 27. března 13

Page 8: ANDROID DEVELOPMENT #6 - brmlab › _media › event › android_6.pdf · ANDROID PROJECT Dependencies can be mixed Maven /libs Eclipse classpath dependency (android.jar) referenced

LAYOUTGRAVITY

středa, 27. března 13

Page 9: ANDROID DEVELOPMENT #6 - brmlab › _media › event › android_6.pdf · ANDROID PROJECT Dependencies can be mixed Maven /libs Eclipse classpath dependency (android.jar) referenced

(CONTENT) GRAVITY

středa, 27. března 13

Page 10: ANDROID DEVELOPMENT #6 - brmlab › _media › event › android_6.pdf · ANDROID PROJECT Dependencies can be mixed Maven /libs Eclipse classpath dependency (android.jar) referenced

LINEARLAYOUT

středa, 27. března 13

Page 11: ANDROID DEVELOPMENT #6 - brmlab › _media › event › android_6.pdf · ANDROID PROJECT Dependencies can be mixed Maven /libs Eclipse classpath dependency (android.jar) referenced

LINEARLAYOUT

středa, 27. března 13

Page 12: ANDROID DEVELOPMENT #6 - brmlab › _media › event › android_6.pdf · ANDROID PROJECT Dependencies can be mixed Maven /libs Eclipse classpath dependency (android.jar) referenced

FRAMELAYOUT

středa, 27. března 13

Page 13: ANDROID DEVELOPMENT #6 - brmlab › _media › event › android_6.pdf · ANDROID PROJECT Dependencies can be mixed Maven /libs Eclipse classpath dependency (android.jar) referenced

TABLELAYOUT

středa, 27. března 13

Page 14: ANDROID DEVELOPMENT #6 - brmlab › _media › event › android_6.pdf · ANDROID PROJECT Dependencies can be mixed Maven /libs Eclipse classpath dependency (android.jar) referenced

RELATIVELAYOUT

středa, 27. března 13

Page 15: ANDROID DEVELOPMENT #6 - brmlab › _media › event › android_6.pdf · ANDROID PROJECT Dependencies can be mixed Maven /libs Eclipse classpath dependency (android.jar) referenced

VIEWSPROGRAMATICALLY

ViewGroup extends ViewViewGroup.addView(View child)

LayoutParamsLinearLayout, FrameLayout, RelativeLayoutFrameLayout.LayoutParams

View.setLayoutParams(LayoutParams params)

středa, 27. března 13

Page 16: ANDROID DEVELOPMENT #6 - brmlab › _media › event › android_6.pdf · ANDROID PROJECT Dependencies can be mixed Maven /libs Eclipse classpath dependency (android.jar) referenced

VIEWS VISIBILITY

View.setVisibility(int)View.VISIBLE - defaultView.GONE - not using spaceView.INVISIBLE - just hidden, takes space

středa, 27. března 13

Page 17: ANDROID DEVELOPMENT #6 - brmlab › _media › event › android_6.pdf · ANDROID PROJECT Dependencies can be mixed Maven /libs Eclipse classpath dependency (android.jar) referenced

VIEWGROUPCHILDREN

View.findViewById(int)returns View, have to be re-typedeg. (TextView) findViewById(R.id.text)

searching through activity layout viewsearching through LayoutInflater result

středa, 27. března 13

Page 18: ANDROID DEVELOPMENT #6 - brmlab › _media › event › android_6.pdf · ANDROID PROJECT Dependencies can be mixed Maven /libs Eclipse classpath dependency (android.jar) referenced

VIEWGROUP CHILDREN

středa, 27. března 13

Page 19: ANDROID DEVELOPMENT #6 - brmlab › _media › event › android_6.pdf · ANDROID PROJECT Dependencies can be mixed Maven /libs Eclipse classpath dependency (android.jar) referenced

MAVENLATEST 3.0.5

Apache License 2.0Java toolDependency managementProject inheritancePackaging, Testing, Deploy, InstallPlugins / Modules for version controlAndroid module (build, run, package)

středa, 27. března 13

Page 20: ANDROID DEVELOPMENT #6 - brmlab › _media › event › android_6.pdf · ANDROID PROJECT Dependencies can be mixed Maven /libs Eclipse classpath dependency (android.jar) referenced

MAVEN INTEGRATION

Eclipse m2e pluginpom.xmlapklib not supported yet

apklib includes android resourcesjar dependencies supported

středa, 27. března 13

Page 21: ANDROID DEVELOPMENT #6 - brmlab › _media › event › android_6.pdf · ANDROID PROJECT Dependencies can be mixed Maven /libs Eclipse classpath dependency (android.jar) referenced

MAVEN PACKAGES

POM - Directory hierarchy with pom filesWAR - J2EE distribution (Sun)APK - Distribution (signed, unsigned)JAR - LibrariesAPKLIB - Android specific, includes resources

středa, 27. března 13

Page 22: ANDROID DEVELOPMENT #6 - brmlab › _media › event › android_6.pdf · ANDROID PROJECT Dependencies can be mixed Maven /libs Eclipse classpath dependency (android.jar) referenced

MAVENANDROID

Goalsandroid:cleanandroid:deploy / :redeployandroid:runandroid:devices (adb list-devices)android:emulator-*android:lintandroid:apk

středa, 27. března 13

Page 23: ANDROID DEVELOPMENT #6 - brmlab › _media › event › android_6.pdf · ANDROID PROJECT Dependencies can be mixed Maven /libs Eclipse classpath dependency (android.jar) referenced

MAVEN ECLIPSE

Maven Eclipse plugin

eclipse:eclipseeclipse:cleaneclipse:to-maveneclipse:configure-workspace

středa, 27. března 13

Page 24: ANDROID DEVELOPMENT #6 - brmlab › _media › event › android_6.pdf · ANDROID PROJECT Dependencies can be mixed Maven /libs Eclipse classpath dependency (android.jar) referenced

ANDROID PROJECT

Dependencies can be mixedMaven/libsEclipse classpath dependency (android.jar)referenced Android library projects

Must configure exporting librariescopying them to built APK archive

středa, 27. března 13

Page 25: ANDROID DEVELOPMENT #6 - brmlab › _media › event › android_6.pdf · ANDROID PROJECT Dependencies can be mixed Maven /libs Eclipse classpath dependency (android.jar) referenced

WHY MAVEN

Version dependencylibrary version update is handled

Hierarchy dependencylibrary that refers to library that refers ...

Automatic downloading Javadoc and Sources

středa, 27. března 13

Page 26: ANDROID DEVELOPMENT #6 - brmlab › _media › event › android_6.pdf · ANDROID PROJECT Dependencies can be mixed Maven /libs Eclipse classpath dependency (android.jar) referenced

WHY NOT MAVEN

APKLIB is not supportedEvery library providing resources =>

imageslayoutsdrawables

=> is not usable with Maven yeteg. ActionBarSherlock

středa, 27. března 13