안드로이드 다이얼로그 상속 받아서 사용하는 방법입니다.
하나 만들어두고 사용한다면 편리하게 개발 할수 있습니다.
사용방법은 아래와 같이 사용하시면 됩니다.

Test test = new Text(this)
test.show()


public class Test extends Dialog{

public Test(Context context ) {
        super(context);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.test); // 커스텀 레이아웃 작성
        getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
        setCanceledOnTouchOutside(false);
        setCancelable(true);

    }
}


1. ShocaseView

안드로이드 앱 첫 실행시 설명 을 할때 쓸 수있는 쇼케이스 뷰 ㄹ

라이브러리 입니다.

주소 : https://github.com/amlcurran/ShowcaseView




2. Titanic

안드로이드 로딩 애니메이션으로 아주 쵝오 인듯 합니다. ^^

주소 : https://github.com/RomainPiel/Titanic





3. AndroidSlidingUpPanel

안드로이드 슬라이딩 업 판넬 입니다.

화려하고 멋진 ui 를 만드는데 쓰이면 아주 좋을 라이브러리 입니다.

주소 : https://github.com/umano/AndroidSlidingUpPanel





1. Android View Animation

안드로이드 textview 및 edittext 애니메이션 라이브러리 입니다.

주소 : https://github.com/daimajia/AndroidViewAnimations 



2.  GalleryView

안드로이드 겔러리 뷰 라이브러리 이네요

주소 : https://github.com/JakeWharton/u2020



3. Draggable Panel

유튜브 와 같은 라이브러 동영상을 아래로 내리고 밀고

주소 : https://github.com/pedrovgs/DraggablePanel




4. ParallaxHeaderViewPager

안드로이드 리스트뷰 해더 라이브러리 입니다.

앱 개발할때 유용 하게 많이 쓰일겉 같아요

주소 : https://github.com/kmshack/Android-ParallaxHeaderViewPager




5. ParallaxListView

안드로이드 리스트뷰 헤더 라이브러 입니다.

IOS 먼저 사용되었던 것 같은데 안드로이드 라이브러리도 나왔네요 ^^

주소 : https://github.com/Gnod/ParallaxListView


안드로이드 앱 개발하면서 PDF 파일을 보여주기란 쉽지 않습니다.


라이브러리를 사용하는 것도 쉽지 않은데


사용자에게 PDF 파일을 보여 주도록 한다면 웹뷰로 아래 방법을 통해서


보여주면 쉽게 구현 할 수 있을 것 같아서 공유 합니다.

presspacket_web = (WebView)getActivity().findViewById(R.id.presspacket_web);
presspacket_web.getSettings().setJavaScriptEnabled(true);
presspacket_web.getSettings().setAllowFileAccess(true);
presspacket_web.loadUrl("https://docs.google.com/gview?embedded=true&url=" + PDF URL );



// PX ---> DP

public static int getPixelToDp(Context context, int pixel) {
    float dp = 0;
    try {
        DisplayMetrics metrics = context.getResources().getDisplayMetrics();
        dp = pixel / (metrics.densityDpi / 160f);
    } catch (Exception e) {
         
    }
    return (int) dp;
}


 // DP ---> PX

public static int getDpToPixel(Context context, int DP) {
    float px = 0;
    try {
        px = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, DP, context.getResources().getDisplayMetrics());
    } catch (Exception e) {
         
    }
    return (int) px;
}


<소스를 복사 하고싶으시거나  타자 치지 싫으신 분은 댓글 달아주세요 ^^>


작은 사이즈에서 점점 커지면서 나오는 애니메이션

Animation animation = new AlphaAnimation(0.0f, 1.0f);
            animation.setDuration(150);
            set.addAnimation(animation);
          
         animation = new ScaleAnimation(
           0f, 1f, 0f, 1f,
           Animation.RELATIVE_TO_SELF, 0.5f,
           Animation.RELATIVE_TO_SELF, 0.5f);
         animation.setDuration(250);
         set.setInterpolator(new AccelerateInterpolator());
       set.addAnimation(animation);



현재 사이즈에서 커지는 애니메이션

public ScaleAnimation DragAni(int w , int h){
        ScaleAnimation scale = new ScaleAnimation(1f, 1.3f, 1f, 1.3f , Animation.RELATIVE_TO_SELF, 0.5f , Animation.RELATIVE_TO_SELF , 0.5f); // 점점 커진다
        scale.setDuration(200);
        scale.setFillAfter(true); //애니메이션 끝난 후 고정
        scale.setFillEnabled(true);
        return scale;
    }



흔들리는 애니메이션

private Animation createFastRotateAnimation() {
        Animation rotate = new RotateAnimation(-3.0f,
                3.0f,
                Animation.RELATIVE_TO_SELF,
                0.9f,
                Animation.RELATIVE_TO_SELF,
                0.9f);
       rotate.setRepeatMode(Animation.REVERSE);
        rotate.setRepeatCount(Animation.INFINITE);
        rotate.setDuration(60);
        rotate.setInterpolator(new AccelerateDecelerateInterpolator());
       
        return rotate;
    }


Fragement 를 viewpager 로 view 를 구성할때 is not currently in the fragmentmanager를 

만나게 되어서 엄청 고생했습니다 ㅡㅜ

많은 분들이 고생을 덜어 주고자 포스팅 해봐요~


is not currently in the fragmentmanager 에러는 Fragment 에서 add , remove , replace 할때 생기는 

에러입니다.  

에러가 발생 하는 이유는 fragment adapter 에서 view 를 생성 하고 있는데 add 또는 replace , remove 

를 할때 작업이 완료되지 않아서 나는 에러라고 보시면 될 것 같습니다.


그래서 자체적으로 해결 한 방법을 작성 해보겠습니다. 

아래 방법 말고 해결 방법을 아시는 분은 댓글로 부탁 드려요 ^^


Viewpager 아답터 class 에서 아래 소스를 작성

Viewpager.setOnPageChangeListener(new OnPageChangeListener() {
            Fragment mFragment =  getActivity().getSupportFragmentManager().findFragmentById( layout id );
            @Override
            public void onPageSelected(int arg0) {
                if ( (mFragAdapter.getCount() -1) != arg0 &amp;&amp; arg0 != 0 )
                    mFragment.ViewState(true);
            }
            @Override
            public void onPageScrolled(int arg0, float arg1, int arg2) {}
            @Override
            public void onPageScrollStateChanged(int arg0) {}
        });


아답터에 추가될 Fragment 에 작성

getView().post(new Runnable() {
            @Override
            public void run() {
                Fragment mFragment = getActivity().getSupportFragmentManager().findFragmentById( layout id);
                mFragment.ViewState(false);
            }
        });



클릭 또는 remove , add , replace 이벤트가 발생하는 곳에 작성

if (ViewState == true){
            Toast.makeText(getActivity(), "페이지 생성 중입니다.", Toast.LENGTH_SHORT).show();
            return;
        }

+ Recent posts