Widespread Augmented Reality

Widespread Augmented Reality
Click on the image to get the Android Augmented Reality Heads up Display

Wednesday, June 3, 2015

Google's Mobile Friendly Test

If you are hoping to rise up the ranks of Google's new mobile search algorithm, the mobile friendly test is a good place to start.

Tuesday, April 28, 2015

Android Shapes and Animation with XML

Here is the Java code in the main activity that animates using the XML below.

//main_activity.java
... Animation rising =AnimationUtils.loadAnimation(this,R.anim.rising);
ImageView bubble = (ImageView)findViewById(R.id.animatedFrame2);
bubble.startAnimation(rising); ...
//end of main_activity.java

anim/rising.xml

drawable-hdpi/bubble.xml

layout/main_activity.xml

Wednesday, April 22, 2015

Companies with Android Job Opportunities

The following Los Angeles companies sought Android development during 2014.
  • GumGum Inc
  • ACTV8
  • Applico Inc.
  • Age of Learning
  • EHarmony
  • OurStay
  • Westside Rentals
  • NClusive
  • Unified Dispatch
  • WeMo
  • Sparks Networks
  • Jogg
  • J2 Global
  • LoopNet

Thursday, April 9, 2015

Android Async Task and Multiple Parms

I am building a pop up window to display text that is available on the main UI, but the pop up also needs to display an image that is downloaded from the server. Therefore the entire method that builds the pop up window needs to be on a background thread, for building the window text on the main UI and then making a network image call results in the image not being in sync with the text description.

In order to build the pop up window in the background, I need to pass parms and a URL into the Async Task.
To do this I essentially created a Popup variable like so:
 
public static class PopupParms {

             private String burl; 

             private int type;  

             private int position; 

             private Bitmap bm; 
 
}

This class is inside the larger class that contains the async task.


Then I instantiate on the main UI with:
PopupParms pp = new PopupParms() and assign values like:
pp.burl = a_url;
pp.position = row_number;
pp.type = row_type;
etc...
Now I call the AsyncTask with:
new buildPopUpWithURL().execute(pp);
The AsyncTask class will look like this:
public class buildPopupWithURL extends AsyncTask 

     '<'PopupParms, Integer, PopupParms'>' { 


  @Override
  protected void onPreExecute() { 

    }

  @Override

  protected PopupParms doInBackground(PopupParms... parms) { 

    
    HttpGet reuest = new HttpGet(parms[0].burl); 

    . 

    . 

    . 

    Bitmap bm = BitmapFactory.decodeStream(inputstream, null, null); 

    PopupParms pp = new PopupParms(); 

    pp.bm = bm; // broken out for illustration 

    pp.position = parms[0].position; // broken out for illustration 

    pp.type = parms[0].type; // broken out for illustration  

    return pp; 

  } 

  @Override 

  protected void onPostExecute(PopupParms p) { 

    // broken out for illustration 

    PopupParms pms = new PopupParms();  

    pms.type = p.type; 

    pms.position = p.position; 

    pms.bm = p.bm; 

    // A build method on the main UI
    buildPopup( pms.position, pms.type, pms.bm); 



  }

 

In conclusion, I created a custom class variable that contains the multiple fields that need to be passed into an AsyncTask. After I pass that class variable into the AsyncTask, I parse out and read the member fields of that class variable.
High level representation of passing multiple parameters into an AsyncTask:

You can see this live with SpiderOnFire's Widespread Augmented Reality app.

Tuesday, February 10, 2015

Virtual Reality in the Browser

Forgot to record that I was at this.

Only take away is that Virtual Reality could soon be for the masses via the web browser and of course an expensive headset (Occulus) or a cheaper headset (Google cardboard).

Oh and also, motion sickness can still be an issue.

Sunday, February 8, 2015

This Copy of Windows is not Genuine

Coincidently or not, two customers in succession entered the shop with this message suddenly appearing on Windows Vista and Windows 7. Thanks to internet searches that included this and this in the SERP, I ran from the command prompt as administrator "slmgr -rearm". This seems to switch off the software licensing flag, at least until it comes back on.