Пожалуйста, вы можете помочь. У меня есть очень простой пример ниже страницы, на котором я хочу, чтобы у меня был 2 цветной фон с диагональным разделением, которого я достиг. Так как это на LayeredLayout, я наложу на него содержимое моей страницы.
В симуляторе все в порядке, но когда я помещаю приложение на свое устройство Android, затем, когда я нажимаю на любую часть экрана, верхний левый треугольник меняется на белый, а затем снова меняется, когда я не нажимаю. Правый нижний треугольник остается как есть.
Поскольку это фон для главной страницы, тогда я явно не хочу, чтобы это изменение цвета происходило.
Большое спасибо
Пример класса проекта здесь:
package com.test;
import com.codename1.ui.Button;
import com.codename1.ui.Component;
import com.codename1.ui.Container;
import com.codename1.ui.Form;
import com.codename1.ui.Graphics;
import com.codename1.ui.geom.Dimension;
import com.codename1.ui.layouts.BorderLayout;
import com.codename1.ui.layouts.BoxLayout;
import com.codename1.ui.layouts.LayeredLayout;
public class AndroidKeyboard {
private Form currentForm = new Form("", new BorderLayout());
public void buildPage() {
Container background = getBackground();
currentForm.add(BorderLayout.CENTER, background);
Button button = new Button("Click me");
currentForm.add(BorderLayout.SOUTH, button);
currentForm.show();
}
int topColour = 0x4371A4;
int bottomColour = 0x70AEEA;
private Container getBackground() {
Container layeredContainer = new Container(new LayeredLayout());
layeredContainer.setName("BackgroundContainer");
currentForm.getToolbar().getAllStyles().setBgColor(topColour);
currentForm.getToolbar().getAllStyles().setBgTransparency(255);
//
layeredContainer.getAllStyles().setBgColor(topColour);
layeredContainer.getAllStyles().setBgTransparency(255);
TopTriangleComponent t = new TopTriangleComponent();
t.setTopColour(topColour);
layeredContainer.add(t);
BottomTriangleComponent b = new BottomTriangleComponent();
b.setBottomColour(bottomColour);
layeredContainer.add(b);
return layeredContainer;
}
}
class TopTriangleComponent extends Component {
private int topColour;
protected void setTopColour(int colour) {
topColour = colour;
}
@Override
protected Dimension calcPreferredSize() {
return new Dimension(250, 250);
}
@Override
public void paint(Graphics g) {
g.setColor(topColour);
int[] int_x = new int[] { 0, getWidth(), 0 };
int[] int_y = new int[] { 0, 0, getHeight() };
g.fillPolygon(int_x, int_y, 3);
}
}
class BottomTriangleComponent extends Component {
private int bottomColour;
protected void setBottomColour(int colour) {
bottomColour = colour;
}
@Override
protected Dimension calcPreferredSize() {
return new Dimension(250, 250);
}
@Override
public void paint(Graphics g) {
g.setColor(bottomColour);
int[] int_x = new int[] { getWidth(), getWidth(), 0 };
int[] int_y = new int[] { 0, getHeight(), getHeight() };
g.fillPolygon(int_x, int_y, 3);
}
}