Book Image

Android Programming for Beginners - Second Edition

By : John Horton
Book Image

Android Programming for Beginners - Second Edition

By: John Horton

Overview of this book

Are you trying to start a career in programming, but haven't found the right way in? Do you have a great idea for an app, but don't know how to make it a reality? Or maybe you're just frustrated that in order to learn Android, you must know Java. If so, then this book is for you. This new and expanded second edition of Android Programming for Beginners will be your companion to create Android Pie applications from scratch. We will introduce you to all the fundamental concepts of programming in an Android context, from the basics of Java to working with the Android API. All examples use the up-to-date API classes, and are created from within Android Studio, the official Android development environment that helps supercharge your application development process. After this crash course, we'll dive deeper into Android programming and you'll learn how to create applications with a professional-standard UI through fragments and store your user's data with SQLite. In addition, you'll see how to make your apps multilingual, draw to the screen with a finger, and work with graphics, sound, and animations too. By the end of this book, you'll be ready to start building your own custom applications in Android and Java.
Table of Contents (35 chapters)
Android Programming for Beginners - Second Edition
Contributors
Preface
Other Books You May Enjoy
Index

Coding the LiveDrawingView class


The first thing we will do is solve the problem of our LiveDrawingView class not being of the View type. Update the class declaration as highlighted, as follows:

class LiveDrawingView extends SurfaceView {

You will be prompted to import the android.view.SurfaceView class, as shown in the following screenshot:

Click OK to confirm this.

SurfaceView is a descendant of View and now LiveDrawingView is, by inheritance, also a type of View. Look at the import statement that has been added. This relationship is made clear, as highlighted in the following code:

android.view.SurfaceView

Note

Remember that it is because of polymorphism that we can send descendants of View to the setContentView method in the LiveDrawingActivity class, and that it is because of inheritance that LiveDrawingView is now a type of SurfaceView.

There are quite a few descendants of View that we could have extended to fix this initial problem, but we will see as we continue that SurfaceView has some...