마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

딜레이를 Seekbar를 통해 구현하고 싶습니다 ㅜ

0 추천

안녕하십니까~!!! 오늘도 앱 개발에 열중인 초보 개발자 입니다!!!!

gif 관련 앱을 만들어 볼려고 하고 있습니다.

아래의 코드로 만들어 지긴 하는데 딜레이가 정해져 있어 많은 어려움을 겪고 있습니다 ㅜ

 e.setDelay(500);  이 부분이 딜레이를  설정하는것 같습니다...(확실히는 모르겟습니다만....)

근데 제가 이 딜레이 부분을  e.setDelay(x);로 두고 이 x 값을 seekbar를 통해 변경하고 싶습니다 ㅜ (혹은 editbox루요...ㅜ)

seekbar 혹은 editbox로 조절 가능하게 하는 법 혹시 아시는 고수분 계시면 저에게 한줄기 빛을 내려 주십시오!!!!

귀찮으시 겠지만 간절히 부탁 드립니다 ㅜ

------------------------------------------------------------------------------------------------------------------------

 

 protected void makeGIF() {
  mProgressDialog = new ProgressDialog(this);
  mProgressDialog.setTitle("Making your GIF");
  mProgressDialog.setIndeterminate(false);
  mProgressDialog.setMax(100);
  mProgressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
  mProgressDialog.show();
  GIFEncodeTask task = new GIFEncodeTask();
  task.execute("");
 }

 private class GIFEncodeTask extends AsyncTask<String, Integer, String> {

  @Override
  protected String doInBackground(String... arg0) {
   AnimatedGifEncoder e = new AnimatedGifEncoder();
   try {
    e.start(new FileOutputStream(new File(IMG_DIR, "output.gif")));
   } catch (FileNotFoundException e1) {
    throw new RuntimeException(e1);
   }
   e.setDelay(500); 
   File[] files = IMG_DIR.listFiles();
   int c = 0;
   for (File f : files) {
    c += 1;
    publishProgress((int) ((float) c / files.length * 100f));
    if (f.getName().contains(".jpg")) {
     Log.d("D", f.getName());

     BitmapFactory.Options bmOptions = new BitmapFactory.Options();
     bmOptions.inJustDecodeBounds = true;
     BitmapFactory.decodeFile(f.getAbsolutePath(), bmOptions);
     int photoW = bmOptions.outWidth;
     int photoH = bmOptions.outHeight;

     int targetW = 20;
     int targetH = targetW * photoH / photoW;

     int scaleFactor = photoW / targetW;

     // Decode the image file into a Bitmap sized to fill the
     // View
     bmOptions.inJustDecodeBounds = false;
     bmOptions.inSampleSize = scaleFactor;
     bmOptions.inPurgeable = true;

     Bitmap bitmap = BitmapFactory.decodeFile(
       f.getAbsolutePath(), bmOptions);

     e.addFrame(BitmapFactory.decodeFile(f.getAbsolutePath()));
    }
   }
   e.finish();
   publishProgress(-1);
   return null;
  }

익명사용자 님이 2013년 7월 30일 질문

1개의 답변

0 추천
 
채택된 답변

SeekBar의 setMax(int)로 최대값을 주실수 있습니다. 그리고 getProgress()를 통해 현재 SeekBar의 값을 가지고 올 수 있죠.

e.setDelay(seekbar.getProgress());

위와 같이 하시면 seekbar를 가지고 딜레이를 설정 하실수 있습니다.

자세한 내용은 해당 API를 참조해 주세요.

http://developer.android.com/reference/android/widget/SeekBar.html

pulak (2,610 포인트) 님이 2013년 7월 30일 답변
엇 답변 감사합니다~!!! ㅎㅎ seekbar가 생소하고 어려워..... edittext로 해결해 버렸네요~!! ㅎㅎ 답변해 주신 것 감사합니다~!!!
...