Created
March 16, 2015 13:00
-
-
Save vakrilov/1cffd57578e202a657d0 to your computer and use it in GitHub Desktop.
Native Script - Setting Gradients
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<Page xmlns="http://www.nativescript.org/tns.xsd" loaded="pageLoaded"> | |
<StackLayout> | |
<Label text="Hello"/> | |
</StackLayout> | |
</Page> |
colorsArray.addObject(interop.types.id(UIColor.redColor().CGColor));
How can use hex or RGB colors instead of a redColor() ????
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
I'm use TypeScript and compiler says: "Cannot find name 'android'" or "Cannot find name 'java'" how I do to fix it? #)