Added nativeView.setLayerType(android.view.View.LAYER_TYPE_HARDWARE, null); for complex backgrounds on API Level > 18. (Resolves #1223)

This commit is contained in:
Rossen Hristov
2015-12-12 15:33:04 +02:00
parent f732224248
commit 1c59f7706d
2 changed files with 9 additions and 6 deletions

View File

@ -26,9 +26,9 @@ export function pageLoaded(args: observable.EventData) {
export function onSetOpacity(args: observable.EventData) { export function onSetOpacity(args: observable.EventData) {
var newOpacity = opacitySlider.value / 100; var newOpacity = opacitySlider.value / 100;
container._eachChildView((view: view.View) => { container._eachChildView((view: view.View) => {
if (view.android) { //if (view.android) {
view.android.setLayerType(android.view.View.LAYER_TYPE_HARDWARE, null); // view.android.setLayerType(android.view.View.LAYER_TYPE_HARDWARE, null);
} //}
view.opacity = newOpacity; view.opacity = newOpacity;
return true; return true;
}); });
@ -39,9 +39,9 @@ export function onAnimateOpacity(args: observable.EventData) {
var newOpacity = opacitySlider.value / 100; var newOpacity = opacitySlider.value / 100;
var animationDefinitions = new Array<animationModule.AnimationDefinition>(); var animationDefinitions = new Array<animationModule.AnimationDefinition>();
container._eachChildView((view: view.View) => { container._eachChildView((view: view.View) => {
if (view.android) { //if (view.android) {
view.android.setLayerType(android.view.View.LAYER_TYPE_HARDWARE, null); // view.android.setLayerType(android.view.View.LAYER_TYPE_HARDWARE, null);
} //}
animationDefinitions.push({ animationDefinitions.push({
target: view, target: view,
opacity: newOpacity, opacity: newOpacity,

View File

@ -60,6 +60,9 @@ function onBackgroundOrBorderPropertyChanged(v: view.View) {
// http://developer.android.com/guide/topics/graphics/hardware-accel.html // http://developer.android.com/guide/topics/graphics/hardware-accel.html
nativeView.setLayerType(android.view.View.LAYER_TYPE_SOFTWARE, null); nativeView.setLayerType(android.view.View.LAYER_TYPE_SOFTWARE, null);
} }
else {
nativeView.setLayerType(android.view.View.LAYER_TYPE_HARDWARE, null);
}
} }
else { else {
// reset the value with the default native value // reset the value with the default native value