Biju, this wasn't what I meant and it would not work because in propertyChanged() you want to only call super.propertyChanged only if that property isn't processed (i.e: if else statements). What I meant was before you were doing this twice (in processProperties and onPropertyChanged):
String bkgdImage = TiConvert.toString(newValue); 
TiFileHelper tfh = new TiFileHelper(tv.getContext());
String url = proxy.resolveUrl(null, bkgdImage);
Drawable background = tfh.loadDrawable(url, false);
nativeView.setBackgroundDrawable(background);

Instead of doing that, you can create a function, called may processBackgroundImage()  to encapsulate that block of code above then use that method instead the above block code twice. That would prevent code duplication as well as improving the cleanliness of the code in general.

Please revert the latest 2 commits since applyProperties() wouldn't work correctly and it's unnecessary that we're doing nested if's