8.3.8 Paint API - Xfermode and PorterDuff Detailed Explanation (Part 5)
Category Android Basic Tutorial
Introduction to this section:
>
In the previous section, we created another example of image blending with Xfermode—a demo that erases a woman's clothes. Combined with the earlier implementation of rounded or circular ImageViews using Xfermode, you should no longer feel as unfamiliar with Xfermode as before, or perhaps even somewhat familiar. In this section, we will create the final example using Xfermode, implementing a text loading effect with the PorterDuff.SRC_IN mode! Here is the PorterDuff mode diagram again:
- 2.3.9 RatingBar (Star Rating Bar)
- 2.4.1 ScrollView (Scroll Bar)
- 2.4.2 Date & Time Components (Part 1)
- 2.4.3 Date & Time Components (Part 2)
- 2.4.4 Adapter Basics
- 2.4.5 Simple Use of ListView
- 2.4.6 BaseAdapter Optimization
- 2.4.7 ListView Focus Issues
- 2.4.8 Solving Checkbox Misalignment in ListView
- 2.4.9 Data Update Issues in ListView
- 2.5.0 Building a Reusable Custom BaseAdapter
- 2.5.1 Implementing Multiple Item Layouts in ListView
- 2.5.2 Basic Use of GridView (Grid View)
- 2.5.3 Basic Use of Spinner (Dropdown List)
- 2.5.4 Basic Use of AutoCompleteTextView (Auto-complete Text Field)
- 2.5.5 Basic Use of ExpandableListView (Expandable List)
- 2.5.6 Basic Use of ViewFlipper (Flip View)
- 2.5.7 Basic Use of Toast (Toast Notification)
- 2.5.8 Detailed Explanation of Notification (Status Bar Notification)
- 2.5.9 Detailed Explanation of AlertDialog (Dialog Box)
- 2.6.0 Basic Use of Other Common Dialogs
- 2.6.1 Basic Use of PopupWindow (Floating Window)
- 2.6.2 Menu (Menu)
- 2.6.3 Simple Use of ViewPager
- 2.6.4 Simple Use of DrawerLayout (Official Side Slider Menu)
- 3.1.1 Event Handling Mechanism Based on Listeners
- 3.2 Event Handling Mechanism Based on Callbacks
- 3.3 Analysis of Handler Message Passing Mechanism
- 3.4 TouchListener vs OnTouchEvent + Multi-touch
- 3.5 Listening for Content Changes in EditText
- 3.6 Responding to System Setting Changes (Configuration Class)
- 3.7 AsyncTask Asynchronous Tasks
- 3.8 Gestures (Gestures)
- 4.1.1 Activity Beginner
- 4.1.2 Activity Intermediate
- 4.1.3 Activity Advanced
- 4.2.1 Service Beginner
- 4.2.2 Service Intermediate
- 4.2.3 Service Advanced
- 4.3.1 BroadcastReceiver Beginner
- 4.3.2 BroadcastReceiver Intermediate
- 4.4.1 ContentProvider Beginner
- 4.4.2 ContentProvider Intermediate - Document Provider
- 4.5.1 Basic Use of Intent
- 4.5.2 Passing Complex Data with Intent
- 5.1 Basic Overview of Fragment
- 5.2.1 Fragment Example - Bottom Navigation Bar Implementation (Method 1)
- 5.2.2 Fragment Example - Bottom Navigation Bar Implementation (Method 2)
- 5.2.3 Fragment Example - Bottom Navigation Bar Implementation (Method 3)
- 5.2.4 Fragment Example - Bottom Navigation Bar + ViewPager Page Sliding
- 5.2.5 Fragment Example - Simple Implementation of News (Shopping) App List Fragment
- 6.1 Data Storage and Access - File Storage and Reading
- 6.2 Data Storage and Access - SharedPreferences for Saving User Preferences
- 6.3.1 Data Storage and Access - Introduction to SQLite Database
- 6.3.2 Data Storage and Access - Further Exploration of SQLite Database
- 7.1.1 Android Network Programming and Learning HTTP Protocol
- 7.1.2 Learning HTTP Request Headers and Response Headers in Android
- 7.1.3 Android HTTP Request Method: HttpURLConnection
- 7.1.4 Android HTTP Request Method: HttpClient
- 7.2.1 Android XML Data Parsing
- 7.2.2 Android JSON Data Parsing
- 7.3.1 Android File Upload
- 7.3.2 Android File Download (1)
- 7.3.3 Android File Download (2)
- 7.4 Android Calling WebService
- 7.5.1 Basic Use of WebView (Web View)
- 7.5.2 Basic Interaction Between WebView and JavaScript
- 7.5.3 Considerations for WebView in Android 4.4 and Later
- 7.5.4 WebView File Download
- 7.5.5 WebView Cache Issues
- 7.5.6 WebView Handling Error Codes from Web Pages
- 7.6.1 Socket Learning Network Basics Preparation
- 7.6.2 Socket Communication Based on TCP Protocol (1)
- 7.6.3 Socket Communication Based on TCP Protocol (2)
- 7.6.4 Socket Communication Based on UDP Protocol
- 8.1.1 Summary of 13 Drawable Types in Android Part 1
- 8.1.2 Summary of 13 Drawable Types in Android Part 2
- 8.1.3 Summary of 13 Drawable Types in Android Part 3
- 8.2.1 Comprehensive Analysis of Bitmap (Part 1)
- 8.2.2 OOM Issues Caused by Bitmap
- 8.3.1 Detailed Explanation of Three Drawing Tool Classes
- 8.3.2 Practical Examples of Drawing Classes
- 8.3.3 Paint API — MaskFilter
- 8.3.4 Paint API — Xfermode and PorterDuff (Part 1)
- 8.3.5 Paint API — Xfermode and PorterDuff (Part 2)
- 8.3.6 Paint API — Xfermode and PorterDuff (Part 3)
- 8.3.7 Paint API — Xfermode and PorterDuff (Part 4)
- 8.3.8 Paint API — Xfermode and PorterDuff (Part 5)
- 8.3.9 Paint API — ColorFilter (Color Filter) (1/3)
- 8.3.10 Paint API — ColorFilter (Color Filter) (2/3)
- 8.3.11 Paint API — ColorFilter (Color Filter) (3/3)
- 8.3.12 Paint API — PathEffect (Path Effect)
- 8.3.13 Paint API — Shader (Image Rendering)
- 8.3.14 Paint API — Enumerations/Constants and ShadowLayer Shadow Effect
- 8.3.15 Paint API — Typeface
- 8.3.16 Canvas API Detailed Explanation (Part 1)
- 8.3.17 Canvas API Detailed Explanation (Part 2) Clipping Methods
- 8.3.18 Canvas API Detailed Explanation (Part 3) Matrix and drawBitmapMesh
- 8.4.1 Frame Animation in Android
- 8.4.2 Tween Animation in Android
- 8.4.3 Property Animation in Android - Introduction
- 8.4.4 Property Animation in Android - Further Exploration
- 9.1 Playing Sound Effects with SoundPool (Duang~)
- 9.2 Playing Audio and Video with MediaPlayer
- 9.3 Using Camera to Take Photos
- 9.4 Using MediaRecord to Record Audio
- 10.1 TelephonyManager (Phone Manager)
- 10.2 SmsManager (SMS Manager)
- 10.3 AudioManager (Audio Manager)
- 10.4 Vibrator
- 10.5 AlarmManager (Alarm Service)
- 10.6 PowerManager (Power Service)
- 10.7 WindowManager (Window Management Service)
- 10.8 LayoutInflater (Layout Service)
- 10.9 WallpaperManager (Wallpaper Manager)
- 10.10 Sensor Topics (1) — Introduction
- 10.11 Sensor Topics (2) — Orientation Sensor
- 10.12 Sensor Topics (3) — Accelerometer/Gyroscope Sensor
- 10.12 Sensor Topics (4) — Understanding Other Sensors
- 10.14 Introduction to Android GPS
- 11.0 "2015 Latest Android Basic Tutorial" Concludes
- 12.1 Android Practice: DrySister App (Version 1) — Project Setup and Basic Implementation
- 12.2 DrySister App (Version 1) — Parsing Backend Data
- 12.3 DrySister App (Version 1) — Image Loading Optimization (Building a Simple Image Cache Framework)
- 12.4 DrySister App (Version 1) — Adding Data Caching (Introducing SQLite)
- 12.5 DrySister App (Version 1) — Code Review, Adjustments, and Logging Class
- 12.6 DrySister App (Version 1) — Icon Creation, Obfuscation, Signing, APK Slimming, App Release