1. 程式人生 > 實用技巧 >android約束佈局動態新增控制元件或者動態修改佈局 記錄筆記

android約束佈局動態新增控制元件或者動態修改佈局 記錄筆記

 ConstraintSet constraintSet =new ConstraintSet();
//        第一個按鈕
        View ivLeft = getLayoutInflater().inflate(R.layout.item_262, null);
        TextView tvText = ivLeft.findViewById(R.id.btn);
        tvText.setText("Monday");
        setFontEn(myContext,tvText);
        ivLeft.setId(R.id.pm1);
        setParam(R.id.pm1,constraintSet);

        constraintSet.connect(
                R.id.pm1, ConstraintSet.BOTTOM, ConstraintSet.PARENT_ID, ConstraintSet.BOTTOM,
                
762 ); constraintSet.connect( R.id.pm1, ConstraintSet.START, ConstraintSet.PARENT_ID, ConstraintSet.START, 104 ); constraintLayout.addView(ivLeft); objectAnimator = starCloudX(ivLeft, 0, -25, 7000); objectAnimator1 = starCloudY(ivLeft, 0, -34, 7000); ivLeft.setOnClickListener(
new View.OnClickListener() { @Override public void onClick(View view) { playMusic(R.raw.shuipaosheng); objectAnimator.pause(); objectAnimator1.pause(); box1_qiti.setAlpha(1f); gifFromPath1.reset(); Path path
= new Path(); path.moveTo(ivLeft.getX(),ivLeft.getY()); path.lineTo(box1_qiti.getX()+box1_qiti.getWidth()/2-ivLeft.getWidth()/2,box1_qiti.getY()+box1_qiti.getHeight()/2-ivLeft.getHeight()/2); ObjectAnimator objectAnimator = starPath(ivLeft, path, 500, 0); starAlpha(ivLeft,1f,0f,500,0); box1_qiti.setAlpha(1f); gifFromPath1.reset(); new Thread(){ @Override public void run() { super.run(); try { this.sleep(200); playMusic(R.raw.xiu); } catch (InterruptedException e) { e.printStackTrace(); } } }.start(); objectAnimator.addListener(new Animator.AnimatorListener() { @Override public void onAnimationStart(Animator animator) { } @Override public void onAnimationEnd(Animator animator) { tv.setText(tv.getText().toString()+" "+tvText.getText().toString()); } @Override public void onAnimationCancel(Animator animator) { } @Override public void onAnimationRepeat(Animator animator) { } }); } }); //第二個按鈕 View ivLeft2 = getLayoutInflater().inflate(R.layout.item_262, null); TextView tvText2 = ivLeft2.findViewById(R.id.btn); tvText2.setText("many"); setFontEn(myContext,tvText2); ivLeft2.setId(R.id.pm2); setParam(R.id.pm2,constraintSet); constraintSet.connect( R.id.pm2, ConstraintSet.BOTTOM, ConstraintSet.PARENT_ID, ConstraintSet.BOTTOM, 295 ); constraintSet.connect( R.id.pm2, ConstraintSet.END, ConstraintSet.PARENT_ID, ConstraintSet.END, 1092 ); ivLeft2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { playMusic(R.raw.shuipaosheng); objectAnimator2.pause(); objectAnimator21.pause(); Path path= new Path(); path.moveTo(ivLeft2.getX(),ivLeft2.getY()); path.lineTo(box1_qiti.getX()+box1_qiti.getWidth()/2-ivLeft2.getWidth()/2,box1_qiti.getY()+box1_qiti.getHeight()/2-ivLeft2.getHeight()/2); ObjectAnimator objectAnimator = starPath(ivLeft2, path, 500, 0); starAlpha(ivLeft2,1f,0f,500,0); box1_qiti.setAlpha(1f); gifFromPath1.reset(); new Thread(){ @Override public void run() { super.run(); try { this.sleep(200); playMusic(R.raw.xiu); } catch (InterruptedException e) { e.printStackTrace(); } } }.start(); objectAnimator.addListener(new Animator.AnimatorListener() { @Override public void onAnimationStart(Animator animator) { } @Override public void onAnimationEnd(Animator animator) { tv.setText(tv.getText().toString()+" "+tvText2.getText().toString()); } @Override public void onAnimationCancel(Animator animator) { } @Override public void onAnimationRepeat(Animator animator) { } }); } }); constraintLayout.addView(ivLeft2); objectAnimator2=starCloudX(ivLeft2,0,-25,7000); objectAnimator21=starCloudY(ivLeft2,0,34,7000); // 第三個按鈕 View ivLeft3 = getLayoutInflater().inflate(R.layout.item_262, null); TextView tvText3 = ivLeft3.findViewById(R.id.btn); tvText3.setText("have"); setFontEn(myContext,tvText3); ivLeft3.setId(R.id.pm3); setParam(R.id.pm3,constraintSet); constraintSet.connect( R.id.pm3, ConstraintSet.START, ConstraintSet.PARENT_ID, ConstraintSet.START, 890 ); constraintSet.connect( R.id.pm3, ConstraintSet.TOP, ConstraintSet.PARENT_ID, ConstraintSet.TOP, 55 ); ivLeft3.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { playMusic(R.raw.shuipaosheng); objectAnimator3.pause(); objectAnimator31.pause(); box1_qiti.setAlpha(1f); gifFromPath1.reset(); Path path= new Path(); path.moveTo(ivLeft3.getX(),ivLeft3.getY()); path.lineTo(box1_qiti.getX()+box1_qiti.getWidth()/2-ivLeft3.getWidth()/2,box1_qiti.getY()+box1_qiti.getHeight()/2-ivLeft3.getHeight()/2); ObjectAnimator objectAnimator = starPath(ivLeft3, path, 500, 0); starAlpha(ivLeft3,1f,0f,500,0); box1_qiti.setAlpha(1f); gifFromPath1.reset(); new Thread(){ @Override public void run() { super.run(); try { this.sleep(200); playMusic(R.raw.xiu); } catch (InterruptedException e) { e.printStackTrace(); } } }.start(); objectAnimator.addListener(new Animator.AnimatorListener() { @Override public void onAnimationStart(Animator animator) { } @Override public void onAnimationEnd(Animator animator) { tv.setText(tv.getText().toString()+" "+tvText3.getText().toString()); } @Override public void onAnimationCancel(Animator animator) { } @Override public void onAnimationRepeat(Animator animator) { } }); } }); constraintLayout.addView(ivLeft3); objectAnimator3=starCloudX(ivLeft3,0,25,7000); objectAnimator31=starCloudY(ivLeft3,0,34,7000); TransitionManager.beginDelayedTransition(constraintLayout); constraintSet.applyTo(constraintLayout);

    @BindView(R.id.layout)
    ConstraintLayout constraintLayout;