From df52a4cafec131becae445fb664ff03542fe3e4f Mon Sep 17 00:00:00 2001 From: Fred Chung Date: Sun, 27 Nov 2011 22:33:23 -0800 Subject: [PATCH] Sample code for Android U lesson: Monetization - Ads without Compromising User Experience. Change-Id: I6b077c24f71c00e99fe6e15da127b02707ad57f3 --- .../training/ads-and-ux/AndroidManifest.xml | 42 +++++ samples/training/ads-and-ux/ReadMe.txt | 9 + samples/training/ads-and-ux/_index.html | 14 ++ .../ads-and-ux/res/drawable-hdpi/ic_home.png | Bin 0 -> 2030 bytes .../res/drawable-mdpi/android_logo.png | Bin 0 -> 21222 bytes .../ads-and-ux/res/layout-land/ad_bottom.xml | 39 +++++ .../ads-and-ux/res/layout-large/ad_bottom.xml | 39 +++++ .../res/layout-large/ad_covers_content.xml | 44 +++++ .../res/layout-large/ad_next_to_button.xml | 38 ++++ .../ads-and-ux/res/layout-large/ad_top.xml | 39 +++++ .../ads-and-ux/res/layout/ad_bottom.xml | 39 +++++ .../res/layout/ad_covers_content.xml | 44 +++++ .../res/layout/ad_next_to_button.xml | 38 ++++ .../training/ads-and-ux/res/layout/ad_top.xml | 39 +++++ .../ads-and-ux/res/layout/fragment_pager.xml | 28 +++ .../training/ads-and-ux/res/values/attrs.xml | 51 ++++++ .../training/ads-and-ux/res/values/colors.xml | 20 +++ .../training/ads-and-ux/res/values/dimens.xml | 27 +++ .../ads-and-ux/res/values/strings.xml | 26 +++ .../training/ads/AdsCatalogActivity.java | 163 ++++++++++++++++++ 20 files changed, 739 insertions(+) create mode 100644 samples/training/ads-and-ux/AndroidManifest.xml create mode 100644 samples/training/ads-and-ux/ReadMe.txt create mode 100644 samples/training/ads-and-ux/_index.html create mode 100644 samples/training/ads-and-ux/res/drawable-hdpi/ic_home.png create mode 100644 samples/training/ads-and-ux/res/drawable-mdpi/android_logo.png create mode 100644 samples/training/ads-and-ux/res/layout-land/ad_bottom.xml create mode 100644 samples/training/ads-and-ux/res/layout-large/ad_bottom.xml create mode 100644 samples/training/ads-and-ux/res/layout-large/ad_covers_content.xml create mode 100644 samples/training/ads-and-ux/res/layout-large/ad_next_to_button.xml create mode 100644 samples/training/ads-and-ux/res/layout-large/ad_top.xml create mode 100644 samples/training/ads-and-ux/res/layout/ad_bottom.xml create mode 100644 samples/training/ads-and-ux/res/layout/ad_covers_content.xml create mode 100644 samples/training/ads-and-ux/res/layout/ad_next_to_button.xml create mode 100644 samples/training/ads-and-ux/res/layout/ad_top.xml create mode 100644 samples/training/ads-and-ux/res/layout/fragment_pager.xml create mode 100644 samples/training/ads-and-ux/res/values/attrs.xml create mode 100644 samples/training/ads-and-ux/res/values/colors.xml create mode 100644 samples/training/ads-and-ux/res/values/dimens.xml create mode 100644 samples/training/ads-and-ux/res/values/strings.xml create mode 100644 samples/training/ads-and-ux/src/com/example/training/ads/AdsCatalogActivity.java diff --git a/samples/training/ads-and-ux/AndroidManifest.xml b/samples/training/ads-and-ux/AndroidManifest.xml new file mode 100644 index 000000000..30032f202 --- /dev/null +++ b/samples/training/ads-and-ux/AndroidManifest.xml @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/samples/training/ads-and-ux/ReadMe.txt b/samples/training/ads-and-ux/ReadMe.txt new file mode 100644 index 000000000..137397c0d --- /dev/null +++ b/samples/training/ads-and-ux/ReadMe.txt @@ -0,0 +1,9 @@ +This sample demonstrates the integration of an mobile ad SDK with your application. In this case, +AdMob is used. + +The application has the following external dependencies. In order to build, be sure to obtain these +JAR files and put them under the libs directory. +1. AdMob SDK + http://code.google.com/mobile/ads/download.html +2. ViewPager depends on the Android Support Package v4 or above. + http://developer.android.com/sdk/compatibility-library.html \ No newline at end of file diff --git a/samples/training/ads-and-ux/_index.html b/samples/training/ads-and-ux/_index.html new file mode 100644 index 000000000..a4eeb315b --- /dev/null +++ b/samples/training/ads-and-ux/_index.html @@ -0,0 +1,14 @@ +

This sample demonstrates the integration of a mobile ad SDK with your application. In this case, AdMob is used to illustrate key integration concepts.

+ +

The application has the following external dependencies. In order to build, be sure to obtain these JAR files and put them under the libs/ directory. +

    +
  1. + AdMob SDK - http://code.google.com/mobile/ads/download.html +
  2. +
  3. + Android Support Package v4 or above - http://developer.android.com/sdk/compatibility-library.html +
  4. +
+

+ +

Refer to the Advertising without Compromising User Experience class for detail. \ No newline at end of file diff --git a/samples/training/ads-and-ux/res/drawable-hdpi/ic_home.png b/samples/training/ads-and-ux/res/drawable-hdpi/ic_home.png new file mode 100644 index 0000000000000000000000000000000000000000..7e52ff595b51cca8586de8eb0835d2f9baa114d3 GIT binary patch literal 2030 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 + + + + + + + + + diff --git a/samples/training/ads-and-ux/res/layout-large/ad_bottom.xml b/samples/training/ads-and-ux/res/layout-large/ad_bottom.xml new file mode 100644 index 000000000..54de75044 --- /dev/null +++ b/samples/training/ads-and-ux/res/layout-large/ad_bottom.xml @@ -0,0 +1,39 @@ + + + + + + + + + + \ No newline at end of file diff --git a/samples/training/ads-and-ux/res/layout-large/ad_covers_content.xml b/samples/training/ads-and-ux/res/layout-large/ad_covers_content.xml new file mode 100644 index 000000000..b3359c2a2 --- /dev/null +++ b/samples/training/ads-and-ux/res/layout-large/ad_covers_content.xml @@ -0,0 +1,44 @@ + + + + + + + + + + + + + diff --git a/samples/training/ads-and-ux/res/layout-large/ad_next_to_button.xml b/samples/training/ads-and-ux/res/layout-large/ad_next_to_button.xml new file mode 100644 index 000000000..a83f4f237 --- /dev/null +++ b/samples/training/ads-and-ux/res/layout-large/ad_next_to_button.xml @@ -0,0 +1,38 @@ + + + + + + + +