Get the Most out of Android 8 Oreo with Visual Studio Tools for Xamarin
Transcript of Get the Most out of Android 8 Oreo with Visual Studio Tools for Xamarin
![Page 1: Get the Most out of Android 8 Oreo with Visual Studio Tools for Xamarin](https://reader031.fdocuments.in/reader031/viewer/2022030318/5a6489a17f8b9a82568b495b/html5/thumbnails/1.jpg)
![Page 2: Get the Most out of Android 8 Oreo with Visual Studio Tools for Xamarin](https://reader031.fdocuments.in/reader031/viewer/2022030318/5a6489a17f8b9a82568b495b/html5/thumbnails/2.jpg)
![Page 3: Get the Most out of Android 8 Oreo with Visual Studio Tools for Xamarin](https://reader031.fdocuments.in/reader031/viewer/2022030318/5a6489a17f8b9a82568b495b/html5/thumbnails/3.jpg)
![Page 4: Get the Most out of Android 8 Oreo with Visual Studio Tools for Xamarin](https://reader031.fdocuments.in/reader031/viewer/2022030318/5a6489a17f8b9a82568b495b/html5/thumbnails/4.jpg)
![Page 5: Get the Most out of Android 8 Oreo with Visual Studio Tools for Xamarin](https://reader031.fdocuments.in/reader031/viewer/2022030318/5a6489a17f8b9a82568b495b/html5/thumbnails/5.jpg)
![Page 6: Get the Most out of Android 8 Oreo with Visual Studio Tools for Xamarin](https://reader031.fdocuments.in/reader031/viewer/2022030318/5a6489a17f8b9a82568b495b/html5/thumbnails/6.jpg)
![Page 7: Get the Most out of Android 8 Oreo with Visual Studio Tools for Xamarin](https://reader031.fdocuments.in/reader031/viewer/2022030318/5a6489a17f8b9a82568b495b/html5/thumbnails/7.jpg)
![Page 8: Get the Most out of Android 8 Oreo with Visual Studio Tools for Xamarin](https://reader031.fdocuments.in/reader031/viewer/2022030318/5a6489a17f8b9a82568b495b/html5/thumbnails/8.jpg)
![Page 9: Get the Most out of Android 8 Oreo with Visual Studio Tools for Xamarin](https://reader031.fdocuments.in/reader031/viewer/2022030318/5a6489a17f8b9a82568b495b/html5/thumbnails/9.jpg)
![Page 10: Get the Most out of Android 8 Oreo with Visual Studio Tools for Xamarin](https://reader031.fdocuments.in/reader031/viewer/2022030318/5a6489a17f8b9a82568b495b/html5/thumbnails/10.jpg)
![Page 11: Get the Most out of Android 8 Oreo with Visual Studio Tools for Xamarin](https://reader031.fdocuments.in/reader031/viewer/2022030318/5a6489a17f8b9a82568b495b/html5/thumbnails/11.jpg)
dependencies {
...
compile “com.android.support:support-emoji:27.0.0”
}
![Page 12: Get the Most out of Android 8 Oreo with Visual Studio Tools for Xamarin](https://reader031.fdocuments.in/reader031/viewer/2022030318/5a6489a17f8b9a82568b495b/html5/thumbnails/12.jpg)
![Page 13: Get the Most out of Android 8 Oreo with Visual Studio Tools for Xamarin](https://reader031.fdocuments.in/reader031/viewer/2022030318/5a6489a17f8b9a82568b495b/html5/thumbnails/13.jpg)
![Page 14: Get the Most out of Android 8 Oreo with Visual Studio Tools for Xamarin](https://reader031.fdocuments.in/reader031/viewer/2022030318/5a6489a17f8b9a82568b495b/html5/thumbnails/14.jpg)
developer.android.com
![Page 15: Get the Most out of Android 8 Oreo with Visual Studio Tools for Xamarin](https://reader031.fdocuments.in/reader031/viewer/2022030318/5a6489a17f8b9a82568b495b/html5/thumbnails/15.jpg)
developer.android.com
![Page 16: Get the Most out of Android 8 Oreo with Visual Studio Tools for Xamarin](https://reader031.fdocuments.in/reader031/viewer/2022030318/5a6489a17f8b9a82568b495b/html5/thumbnails/16.jpg)
developer.android.com
![Page 17: Get the Most out of Android 8 Oreo with Visual Studio Tools for Xamarin](https://reader031.fdocuments.in/reader031/viewer/2022030318/5a6489a17f8b9a82568b495b/html5/thumbnails/17.jpg)
developer.android.com
![Page 18: Get the Most out of Android 8 Oreo with Visual Studio Tools for Xamarin](https://reader031.fdocuments.in/reader031/viewer/2022030318/5a6489a17f8b9a82568b495b/html5/thumbnails/18.jpg)
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon
xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@color/ic_launcher_background"/>
<foreground android:drawable="@mipmap/ic_launcher_foreground"/>
</adaptive-icon>
![Page 19: Get the Most out of Android 8 Oreo with Visual Studio Tools for Xamarin](https://reader031.fdocuments.in/reader031/viewer/2022030318/5a6489a17f8b9a82568b495b/html5/thumbnails/19.jpg)
![Page 20: Get the Most out of Android 8 Oreo with Visual Studio Tools for Xamarin](https://reader031.fdocuments.in/reader031/viewer/2022030318/5a6489a17f8b9a82568b495b/html5/thumbnails/20.jpg)
![Page 21: Get the Most out of Android 8 Oreo with Visual Studio Tools for Xamarin](https://reader031.fdocuments.in/reader031/viewer/2022030318/5a6489a17f8b9a82568b495b/html5/thumbnails/21.jpg)
developer.android.com
![Page 22: Get the Most out of Android 8 Oreo with Visual Studio Tools for Xamarin](https://reader031.fdocuments.in/reader031/viewer/2022030318/5a6489a17f8b9a82568b495b/html5/thumbnails/22.jpg)
developer.android.com
![Page 23: Get the Most out of Android 8 Oreo with Visual Studio Tools for Xamarin](https://reader031.fdocuments.in/reader031/viewer/2022030318/5a6489a17f8b9a82568b495b/html5/thumbnails/23.jpg)
public const string PRIMARY_CHANNEL_ID = "default";
var chan1 = new NotificationChannel(
PRIMARY_CHANNEL_ID,channelName,
NotificationImportance.Default);
var channelName = GetString(Resource.String.noti_channel_default);
chan1.LightColor = Color.Green;chan1.LockscreenVisibility = NotificationVisibility.Private;
manager.CreateNotificationChannel(chan1);
var manager = (NotificationManager)GetSystemService(NotificationService);
![Page 24: Get the Most out of Android 8 Oreo with Visual Studio Tools for Xamarin](https://reader031.fdocuments.in/reader031/viewer/2022030318/5a6489a17f8b9a82568b495b/html5/thumbnails/24.jpg)
var notificationBuilder= new Notification.Builder(ApplicationContext, PRIMARY_CHANNEL_ID).SetContentTitle(title).SetContentText(body).SetSmallIcon(smallIcon).SetAutoCancel(true);
var manager = (NotificationManager)GetSystemService(NotificationService);
manager.Notify(notificationId, notificationBuilder.Build();
public const string PRIMARY_CHANNEL_ID = "default";
![Page 25: Get the Most out of Android 8 Oreo with Visual Studio Tools for Xamarin](https://reader031.fdocuments.in/reader031/viewer/2022030318/5a6489a17f8b9a82568b495b/html5/thumbnails/25.jpg)
![Page 26: Get the Most out of Android 8 Oreo with Visual Studio Tools for Xamarin](https://reader031.fdocuments.in/reader031/viewer/2022030318/5a6489a17f8b9a82568b495b/html5/thumbnails/26.jpg)
![Page 27: Get the Most out of Android 8 Oreo with Visual Studio Tools for Xamarin](https://reader031.fdocuments.in/reader031/viewer/2022030318/5a6489a17f8b9a82568b495b/html5/thumbnails/27.jpg)
![Page 28: Get the Most out of Android 8 Oreo with Visual Studio Tools for Xamarin](https://reader031.fdocuments.in/reader031/viewer/2022030318/5a6489a17f8b9a82568b495b/html5/thumbnails/28.jpg)
![Page 29: Get the Most out of Android 8 Oreo with Visual Studio Tools for Xamarin](https://reader031.fdocuments.in/reader031/viewer/2022030318/5a6489a17f8b9a82568b495b/html5/thumbnails/29.jpg)
![Page 30: Get the Most out of Android 8 Oreo with Visual Studio Tools for Xamarin](https://reader031.fdocuments.in/reader031/viewer/2022030318/5a6489a17f8b9a82568b495b/html5/thumbnails/30.jpg)
![Page 31: Get the Most out of Android 8 Oreo with Visual Studio Tools for Xamarin](https://reader031.fdocuments.in/reader031/viewer/2022030318/5a6489a17f8b9a82568b495b/html5/thumbnails/31.jpg)
developer.android.com/guide/components/broadcast-exceptions.html
![Page 32: Get the Most out of Android 8 Oreo with Visual Studio Tools for Xamarin](https://reader031.fdocuments.in/reader031/viewer/2022030318/5a6489a17f8b9a82568b495b/html5/thumbnails/32.jpg)
![Page 33: Get the Most out of Android 8 Oreo with Visual Studio Tools for Xamarin](https://reader031.fdocuments.in/reader031/viewer/2022030318/5a6489a17f8b9a82568b495b/html5/thumbnails/33.jpg)
developer.android.com
![Page 34: Get the Most out of Android 8 Oreo with Visual Studio Tools for Xamarin](https://reader031.fdocuments.in/reader031/viewer/2022030318/5a6489a17f8b9a82568b495b/html5/thumbnails/34.jpg)
[Activity(Label = "PictureInPicture",
MainLauncher = true,
ConfigurationChanges = ConfigChanges.ScreenSize |
ConfigChanges.SmallestScreenSize |
ConfigChanges.ScreenLayout |
ConfigChanges.Orientation,
SupportsPictureInPicture = true)]public class MainActivity : AppCompatActivity{
}
![Page 35: Get the Most out of Android 8 Oreo with Visual Studio Tools for Xamarin](https://reader031.fdocuments.in/reader031/viewer/2022030318/5a6489a17f8b9a82568b495b/html5/thumbnails/35.jpg)
bool EnterPictureInPictureMode(PictureInPictureParams @params);
public class Builder{
public Builder();
public PictureInPictureParams Build();
public PictureInPictureParams.Builder SetActions(IList<RemoteAction> actions);
public PictureInPictureParams.Builder SetAspectRatio(Rational aspectRatio);
public PictureInPictureParams.Builder SetSourceRectHint (Rect launchBounds);}
![Page 36: Get the Most out of Android 8 Oreo with Visual Studio Tools for Xamarin](https://reader031.fdocuments.in/reader031/viewer/2022030318/5a6489a17f8b9a82568b495b/html5/thumbnails/36.jpg)
public override void OnPictureInPictureModeChanged(bool isInPictureInPictureMode,
Configuration newConfig)
{base.OnPictureInPictureModeChanged(isInPictureInPictureMode, newConfig);
if (isInPictureInPictureMode){
// Hide the controls in picture-in-picture mode.
}else{
// Restore fullscreen UI.
}}
![Page 37: Get the Most out of Android 8 Oreo with Visual Studio Tools for Xamarin](https://reader031.fdocuments.in/reader031/viewer/2022030318/5a6489a17f8b9a82568b495b/html5/thumbnails/37.jpg)
protected override void OnUserLeaveHint(){
if (iWantToBeInPipMode) {
EnterPictureInPictureMode(BuildParametersForPiP());}
}
![Page 38: Get the Most out of Android 8 Oreo with Visual Studio Tools for Xamarin](https://reader031.fdocuments.in/reader031/viewer/2022030318/5a6489a17f8b9a82568b495b/html5/thumbnails/38.jpg)
![Page 39: Get the Most out of Android 8 Oreo with Visual Studio Tools for Xamarin](https://reader031.fdocuments.in/reader031/viewer/2022030318/5a6489a17f8b9a82568b495b/html5/thumbnails/39.jpg)
TextView regular
TextVie
w auto-
sizing
![Page 40: Get the Most out of Android 8 Oreo with Visual Studio Tools for Xamarin](https://reader031.fdocuments.in/reader031/viewer/2022030318/5a6489a17f8b9a82568b495b/html5/thumbnails/40.jpg)
<?xml version="1.0" encoding="utf-8"?>
<TextView
android:layout_width="match_parent"
android:layout_height="200dp"
android:autoSizeTextType="uniform"
android:autoSizeMinTextSize="12sp"
android:autoSizeMaxTextSize="100sp"
android:autoSizeStepGranularity="2sp" />
![Page 41: Get the Most out of Android 8 Oreo with Visual Studio Tools for Xamarin](https://reader031.fdocuments.in/reader031/viewer/2022030318/5a6489a17f8b9a82568b495b/html5/thumbnails/41.jpg)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent"
android:layout_height="match_parent“
android:orientation="vertical" >
<TextView
android:id="@+id/text_view“
android:layout_width="match_parent"
android:layout_height="200dp"
android:text="Auto Size Text."
app:autoSizeTextType="uniform" />
</LinearLayout>
![Page 42: Get the Most out of Android 8 Oreo with Visual Studio Tools for Xamarin](https://reader031.fdocuments.in/reader031/viewer/2022030318/5a6489a17f8b9a82568b495b/html5/thumbnails/42.jpg)
developer.android.com
![Page 43: Get the Most out of Android 8 Oreo with Visual Studio Tools for Xamarin](https://reader031.fdocuments.in/reader031/viewer/2022030318/5a6489a17f8b9a82568b495b/html5/thumbnails/43.jpg)
<EditTextandroid:id="@+id/passwordField"android:layout_width="@dimen/text_field_width"android:layout_height="wrap_content"android:autofillHints="password"android:inputType="textPassword“ />
![Page 44: Get the Most out of Android 8 Oreo with Visual Studio Tools for Xamarin](https://reader031.fdocuments.in/reader031/viewer/2022030318/5a6489a17f8b9a82568b495b/html5/thumbnails/44.jpg)
![Page 45: Get the Most out of Android 8 Oreo with Visual Studio Tools for Xamarin](https://reader031.fdocuments.in/reader031/viewer/2022030318/5a6489a17f8b9a82568b495b/html5/thumbnails/45.jpg)
![Page 46: Get the Most out of Android 8 Oreo with Visual Studio Tools for Xamarin](https://reader031.fdocuments.in/reader031/viewer/2022030318/5a6489a17f8b9a82568b495b/html5/thumbnails/46.jpg)
<TextView
android:text="The quick brown fox jumped over the lazy dog.“
android:textAppearance="?android:attr/textAppearanceLarge"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
![Page 47: Get the Most out of Android 8 Oreo with Visual Studio Tools for Xamarin](https://reader031.fdocuments.in/reader031/viewer/2022030318/5a6489a17f8b9a82568b495b/html5/thumbnails/47.jpg)
<?xml version="1.0" encoding="utf-8"?>
<font-family xmlns:android="http://schemas.android.com/apk/res/android">
<font android:fontStyle="normal"
android:fontWeight="400"
android:font="@font/lobster_regular"/>
<font android:fontStyle="italic“
android:fontWeight="400“
android:font="@font/lobster_italic" />
</font-family>
![Page 48: Get the Most out of Android 8 Oreo with Visual Studio Tools for Xamarin](https://reader031.fdocuments.in/reader031/viewer/2022030318/5a6489a17f8b9a82568b495b/html5/thumbnails/48.jpg)
Fonts Contract
Font Provider
Font Cache
![Page 49: Get the Most out of Android 8 Oreo with Visual Studio Tools for Xamarin](https://reader031.fdocuments.in/reader031/viewer/2022030318/5a6489a17f8b9a82568b495b/html5/thumbnails/49.jpg)
<?xml version="1.0" encoding="utf-8"?>
<font-family
xmlns:android=“http://schemas.android.com/apk/res/android”
android:fontProviderAuthority=“com.example.fontprovider.authority”
android:fontProviderPackage="com.example.fontprovider"
android:fontProviderQuery="example font"
android:fontProviderCerts="@array/certs">
</font-family>
![Page 50: Get the Most out of Android 8 Oreo with Visual Studio Tools for Xamarin](https://reader031.fdocuments.in/reader031/viewer/2022030318/5a6489a17f8b9a82568b495b/html5/thumbnails/50.jpg)
<?xml version="1.0" encoding="utf-8"?>
<resources>
<array name="preloaded_fonts">
<item>@font/font1</item>
<item>@font/font2</item>
</array>
</resources>
![Page 51: Get the Most out of Android 8 Oreo with Visual Studio Tools for Xamarin](https://reader031.fdocuments.in/reader031/viewer/2022030318/5a6489a17f8b9a82568b495b/html5/thumbnails/51.jpg)
<meta-data android:name="preloaded_fonts“android:resource="@array/preloaded_fonts"/>
[Application][MetaData("preloaded_fonts", Resource="@array/preloaded_fonts")]public class EmojiCompatApplication : Application{
// Code omitted for clarity}
![Page 52: Get the Most out of Android 8 Oreo with Visual Studio Tools for Xamarin](https://reader031.fdocuments.in/reader031/viewer/2022030318/5a6489a17f8b9a82568b495b/html5/thumbnails/52.jpg)
FontRequest request = new FontRequest(
"com.google.android.gms.fonts",
"com.google.android.gms",
query,
Resource.Array.com_google_android_gms_fonts_certs);
![Page 53: Get the Most out of Android 8 Oreo with Visual Studio Tools for Xamarin](https://reader031.fdocuments.in/reader031/viewer/2022030318/5a6489a17f8b9a82568b495b/html5/thumbnails/53.jpg)
class FontRequestCallbackImpl : FontsContractCompat.FontRequestCallback{
public override void OnTypefaceRetrieved(Android.Graphics.Typeface typeface){
// Font downloaded - do something with the typeface}
public override void OnTypefaceRequestFailed(int reason){
// Download failed - react to the failure}
}
![Page 54: Get the Most out of Android 8 Oreo with Visual Studio Tools for Xamarin](https://reader031.fdocuments.in/reader031/viewer/2022030318/5a6489a17f8b9a82568b495b/html5/thumbnails/54.jpg)
HandlerThread handlerThread = new HandlerThread("fonts");handlerThread.Start();
FontsContractCompat.RequestFont(this, request, callback, handlerThread);
![Page 55: Get the Most out of Android 8 Oreo with Visual Studio Tools for Xamarin](https://reader031.fdocuments.in/reader031/viewer/2022030318/5a6489a17f8b9a82568b495b/html5/thumbnails/55.jpg)
developer.android.com
![Page 56: Get the Most out of Android 8 Oreo with Visual Studio Tools for Xamarin](https://reader031.fdocuments.in/reader031/viewer/2022030318/5a6489a17f8b9a82568b495b/html5/thumbnails/56.jpg)
![Page 57: Get the Most out of Android 8 Oreo with Visual Studio Tools for Xamarin](https://reader031.fdocuments.in/reader031/viewer/2022030318/5a6489a17f8b9a82568b495b/html5/thumbnails/57.jpg)
// Use downloadable fonts for EmojiCompatvar fontRequest = new FontRequest("com.google.android.gms.fonts",
"com.google.android.gms","Noto Color Emoji Compat",
Resource.Array.com_google_android_gms_fonts_certs);
EmojiCompat.Config config = new FontRequestEmojiCompatConfig(this, fontRequest).SetReplaceAll(true).RegisterInitCallback(new InitCallbackImpl());
EmojiCompat.Init(config);
// OR, if using the bundled EmojiCompat package:
EmojiCompat.Config config = new BundledEmojiCompatConfig(this);EmojiCompat.Init(config);
![Page 58: Get the Most out of Android 8 Oreo with Visual Studio Tools for Xamarin](https://reader031.fdocuments.in/reader031/viewer/2022030318/5a6489a17f8b9a82568b495b/html5/thumbnails/58.jpg)
<android.support.text.emoji.widget.EmojiTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<android.support.text.emoji.widget.EmojiAppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
![Page 59: Get the Most out of Android 8 Oreo with Visual Studio Tools for Xamarin](https://reader031.fdocuments.in/reader031/viewer/2022030318/5a6489a17f8b9a82568b495b/html5/thumbnails/59.jpg)
<android.support.text.emoji.widget.EmojiEditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<android.support.text.emoji.widget.EmojiAppCompatEditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
![Page 60: Get the Most out of Android 8 Oreo with Visual Studio Tools for Xamarin](https://reader031.fdocuments.in/reader031/viewer/2022030318/5a6489a17f8b9a82568b495b/html5/thumbnails/60.jpg)
<android.support.text.emoji.widget.EmojiButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<android.support.text.emoji.widget.EmojiAppCompatButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
![Page 61: Get the Most out of Android 8 Oreo with Visual Studio Tools for Xamarin](https://reader031.fdocuments.in/reader031/viewer/2022030318/5a6489a17f8b9a82568b495b/html5/thumbnails/61.jpg)
github.com/xamarin/monodroid-samples/tree/master/android-o
www.youtube.com/user/androiddevelopers
developer.android.com/about/versions/oreo/index.html
xamarin.com/download
![Page 62: Get the Most out of Android 8 Oreo with Visual Studio Tools for Xamarin](https://reader031.fdocuments.in/reader031/viewer/2022030318/5a6489a17f8b9a82568b495b/html5/thumbnails/62.jpg)
Tom Opgenorth
Senior Content Developer, Microsoft