Skip to content

Instantly share code, notes, and snippets.

@vakrilov
Created March 16, 2015 13:00
Show Gist options
  • Star 3 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save vakrilov/1cffd57578e202a657d0 to your computer and use it in GitHub Desktop.
Save vakrilov/1cffd57578e202a657d0 to your computer and use it in GitHub Desktop.
Native Script - Setting Gradients
function pageLoaded(args) {
var page = args.object;
if (page.android) {
setGradientAndroid(page);
}
else if (page.ios) {
setGradientIOS(page);
}
}
exports.pageLoaded = pageLoaded;
function setGradientAndroid(page) {
var colorsArray = java.lang.reflect.Array.newInstance(java.lang.Integer.class.getField("TYPE").get(null), 2);
colorsArray[0] = android.graphics.Color.parseColor("red");
colorsArray[1] = android.graphics.Color.parseColor("blue");
var gradient = new android.graphics.drawable.GradientDrawable(android.graphics.drawable.GradientDrawable.Orientation.TOP_BOTTOM, colorsArray);
page.android.setBackground(gradient);
}
function setGradientIOS(page) {
var pageView = page.ios.view;
var colorsArray = NSMutableArray.alloc().initWithCapacity(2);
colorsArray.addObject(interop.types.id(UIColor.redColor().CGColor));
colorsArray.addObject(interop.types.id(UIColor.blueColor().CGColor));
var gradientLayer = CAGradientLayer.layer();
gradientLayer.colors = colorsArray;
gradientLayer.frame = pageView.bounds;
pageView.layer.insertSublayerAtIndex(gradientLayer, 0);
}
<Page xmlns="http://www.nativescript.org/tns.xsd" loaded="pageLoaded">
<StackLayout>
<Label text="Hello"/>
</StackLayout>
</Page>
@dondragon2
Copy link

var c = new Color("#00000F"); var uiColor = interop.types.id(c.ios.CGColor); colorsArray.addObject(uiColor);

I think something like that should work

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment