动态添加View到RelativeLayout不起作用

时间:2017-04-18 14:32:39

标签: java android imageview relativelayout

我正在制作一个应用程序,我需要广泛使用动画。我的问题是,我通过Java向我的RelativeLayout添加了一些ImageViews。但接下来当我尝试添加另一个ImageView应用规则,如BELOW,ALIGN_LEFT等相对于之前添加的视图时,这些图像不会显示出来。这很烦人:(主要是,我的问题是,这些规则(LEFT,RIGHT_OF,BELOW等)是否适用于已经动态添加的视图?

1 个答案:

答案 0 :(得分:1)

问:这些规则(LEFT,RIGHT_OF,BELOW等)是否适用于已经动态添加的视图

答案:是的,他们的工作很多。示例代码

public class BlurredImageTest extends Application {

    private DoubleProperty effectHeight = new SimpleDoubleProperty(80);

    @Override
    public void start(Stage primaryStage) {

        Image image = new Image("yourImage.jpg");

        ImageView img = new ImageView(image);

        Rectangle clip = new Rectangle();
        clip.widthProperty().bind(image.widthProperty());
        clip.heightProperty().bind(image.heightProperty().subtract(effectHeight));
        img.setClip(clip);

        ImageView imgEffect = new ImageView(image);

        Rectangle clipEffect = new Rectangle();
        clipEffect.widthProperty().bind(image.widthProperty());
        clipEffect.heightProperty().bind(effectHeight);
        clipEffect.translateYProperty().bind(image.heightProperty().subtract(effectHeight));

        imgEffect.setClip(clipEffect);
        imgEffect.setEffect(new GaussianBlur());

        StackPane root = new StackPane(img, imgEffect);

        primaryStage.setScene(new Scene(root));
        primaryStage.show();

    }

    public final void setEffectHeight(double value) {
        effectHeight.set(value);
    }

    public static void main(String[] args) {
        launch(args);
    }
}

你需要设置ID,然后给你想要为该视图添加的规则。