Annyce Davis

Davis Technology Consulting

  • Home
  • About Me
  • Blog
  • Courses
  • Newsletter

Android Annotations: Brief Overview and a Simple Example

March 10, 2014 by Annyce Davis

Android Annotations is a project which allows you to use simple Java Annotations in your Android classes and have the compiler generate some of the “boilerplate code” for you.  I have not noticed any overhead in the application’s performance so far and I really like how neat the code is, when compared to some of the default code that is typical in Android applications.

Here is an example of creating an activity and then performing a simple operation using a bean to load data:

@EActivity(R.layout.main)
@OptionsMenu(R.menu.main_menu)
@Fullscreen
public class MainActivity extends Activity {

@Bean(MyAPIImpl.class)
MyAPI mAPI;

@AfterInject
void loadData() {
mAPI.getData();
}

@Click(R.id.startButton)
void startClicked() {
NextActivity_.intent(this).start();
}
}

So what you’ll notice in the code is that it’s very clear what this Activity is doing, no need to scroll through lists of Views being initialized and endless availability checks.  Also, the click listeners that are normally splattered throughout the code is contained in a simple method with the @Click annotation. Here you just define the resource id of the item that you would like to associate with the click event and then a method to handle the click.

Furthermore, this Activity references a view in the R.layout.main layout file, without having to define the typical onCreate() method. It also defines which menu file it’s going to use with the @OptionsMenu annotation. Pretty simple, right?  In a future post I will show additional examples of how using AndroidAnnotations makes your code more maintainable. Have you tried this library yet? If so, please let me know what you think. Curious to find out what others think of it.

Android: IntelliJ IDEA/Android Studio Quick Tip

January 2, 2014 by Annyce Davis

I’ve started using IntelliJ as my IDE of choice for developing backend APIs and Android applications.  One really nice feature, which is also available in Android Studio, is the option to create strings.xml values on the fly.  All you need to do is type the name of the desired string resource and then the “bulb” icon will appear asking you if you want to create that resource.  Super simple, but extremely convenient for those times when you are editing a lot of xml files in Android.

 

 

 

First Android Application Released – Word Crank

August 22, 2011 by Annyce Davis

So with all of the free time that I have (smirk), I managed to create an Android Game along with my brother, called Word Crank.  Word Crank is a simple, yet addictive game of creating words as letters fall from above.  Check it out and leave me feedback.  Thanks.

 

Creating a Texture in OpenGL ES 1.0

June 23, 2011 by Annyce Davis

I have recently been learning to use OpenGL ES on Android.  I know that many devices currently support OpenGL ES 2.0, but I wanted to start with 1.0 that is supported everywhere.  To that end I will be making a series of posts that contain various bits of code that I have learned along the way that might be useful to others.

So, this is how you can create a texture in OpenGL ES 1.0:

Bitmap bitmap = BitmapFactory.decodeResource(context.getResources(),
R.drawable.item);
int[] textureIds = new int[1];
gl.glGenTextures(1, textureIds, 0);
textureId = textureIds[0];

gl.glBindTexture(GL10.GL_TEXTURE_2D, textureId);

GLUtils.texImage2D(GL10.GL_TEXTURE_2D, 0, bitmap, 0);

gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MIN_FILTER,
GL10.GL_NEAREST);

gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MAG_FILTER,
GL10.GL_LINEAR);

gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_S,
GL10.GL_CLAMP_TO_EDGE);

gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_T,
GL10.GL_CLAMP_TO_EDGE);

gl.glBindTexture(GL10.GL_TEXTURE_2D, 0);

bitmap.recycle();

You can then use the textureId to bind the texture and draw it on the OpenGLSurfaceView.

« Previous Page
Next Page »

Follow Me

  • Bluesky

Categories

  • Android (61)
  • Career (5)
  • Communication (4)
  • Flutter (1)
  • Git (4)
  • Gradle (4)
  • Grails (23)
  • iOS (1)
  • Java (8)
  • JavaScript (6)
  • Kotlin (17)
  • Life (5)
  • Public Speaking (26)
  • Revenue (2)
  • RxJava (1)
  • Software Development (14)
  • Twitter (3)
  • Uncategorized (11)
  • Video Course (5)

Follow Me

  • Bluesky

Copyright © 2025 · All Rights Reserved · Log in