안드로이드에서 로딩바 만드는법
조회수 4486회
1 답변
-
안드로이드에서는 로딩바를 프로그레스바라고 부르는데요. 커스텀 프로그레스바를 위해 스타일을 정의해줍니다.
<?xml version="1.0" encoding="utf-8"?> <resources> <style name="custom_loading"> <item name="android:windowFrame">@null</item> <item name="android:windowIsFloating">true</item> <item name="android:windowContentOverlay">@null</item> <item name="android:windowTitleStyle">@null</item> <item name="android:windowAnimationStyle">@+android:style/Animation.Dialog</item> <item name="android:windowBackground">@+android:color/transparent</item> <item name="android:windowNoTitle">true</item> </style> </resources>
로딩바를 만들기 위해 클래스를 정의해줍니다.
import android.app.Dialog; import android.content.Context; import android.view.ViewGroup.LayoutParams; import android.widget.ProgressBar; /** * 커스텀로딩 클래스 * @author YT */ public class CLoading{ private static Dialog m_loadingDialog = null; public static void showLoading(Context context) { if (m_loadingDialog == null) { //다이얼로그가 없으면 만들고 보이게 하라 m_loadingDialog = new Dialog(context, R.style.custom_loading); //프로그레스를 생성하자 ProgressBar pb = new ProgressBar(context); LayoutParams params = new LayoutParams( LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); //프로그래스를 다이얼로그에 포함하자 m_loadingDialog.setContentView(pb, params); m_loadingDialog.setCancelable(false); m_loadingDialog.show(); } else if(!m_loadingDialog.isShowing()){ //다이얼로그가 있는데 HIDE 상태면 보이게 하라 m_loadingDialog = null; m_loadingDialog = new Dialog(context, R.style.custom_loading); ProgressBar pb = new ProgressBar(context); LayoutParams params = new LayoutParams( LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); m_loadingDialog.setContentView(pb, params); m_loadingDialog.setCancelable(false); m_loadingDialog.show(); } } public static void hideLoading() { if (m_loadingDialog != null) { if(m_loadingDialog.isShowing()){ //다이얼로그가 있고 보이는 상태면 안보이게 하라 m_loadingDialog.dismiss(); m_loadingDialog = null; } } } }
프로그레스바를 띄울 액티비티에가서
Context context; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); context = this; CLoading.showLoading(context); //show //CLoading.hideLoading(); //hide }
이런식으로 CLoading의 showLoading메소드를 호출해줍니다.
- 제가 이걸 만든 YT라는 사람인데 출처도없이 퍼가셨네요. 알 수 없는 사용자 2017.7.4 16:12
- http://ironnip.tistory.com/6 알 수 없는 사용자 2017.7.4 16:18
댓글 입력