Как вызвать эту анимацию в onCreate () в Android? - PullRequest
0 голосов
/ 14 мая 2019

Я перехожу по этой ссылке для моего требования к анимации. https://medium.com/@ayushpguptaapg/how-to-add-shine-glare-effect-on-an-imageview-ab3e9e660307

Это сделано при прослушивании нажатия кнопки. Который работает нормально. Но я хочу сделать это без нажатия кнопки, поскольку эта анимация начинается при загрузке активности. Я много искал, но не нашел простого решения. Кто-нибудь может сказать мне простое решение. Заранее спасибо.


@ ismail, я использую ваш код, например:

public class MainActivity extends AppCompatActivity{

    Button shinebtn;
    ImageView img,shine;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

          img = findViewById(R.id.img);
        shine = findViewById(R.id.shine);
         shinebtn=findViewById(R.id.button);


        doAnimation();


}
    public void doAnimation(){
        new Thread(new Runnable() {
            public void run() {
                final Animation animation = new TranslateAnimation(0, img.getWidth()+shine.getWidth(),0, 0);
                animation.setDuration(1000);
                animation.setFillAfter(false);
                animation.setRepeatCount(Animation.INFINITE);
                animation.setInterpolator(new AccelerateDecelerateInterpolator());
                shine.post(new Runnable() {
                    public void run() {
                        shine.startAnimation(animation);
                    }
                });
            }
        }).start();


    }


}

1 Ответ

0 голосов
/ 14 мая 2019

просто напишите код после установки ваших элементов в onCreate()

   @Override
   protected void onCreate(Bundle SavedInstanceState){
    super.onCreate(SavedInstanceState);
    setContentView(yor_layout_source);
    ....

    ....
}

 @Override
 public void onResume(){
  super.onResume();  
  //do your animation code here 

 }

и вот ваша анимационная функция:

 public void doAnimation(){
   new Thread(new Runnable() {
    public void run() {
      Animation animation = new TranslateAnimation(0, img.getWidth()+shine.getWidth(),0, 0);
            animation.setDuration(550);
            animation.setFillAfter(false);
            animation.setInterpolator(new AccelerateDecelerateInterpolator());
      shine.post(new Runnable() {
        public void run() {
               shine.startAnimation(animation);
        }
      });
    }
  }).start();


    }
...