কিভাবে ওয়েব ভিউ অ্যাপে প্রগ্রেসবার এড করবেন
আসসালামু আলাইকুম সকলে কেমন আছেন? আশা করি আল্লাহর অশেষ রহমতে সকলে ভালোই আছেন। আমি ও আল্লাহর রহমতে এবং আপনাদের দোয়ায় ভালো আছি। আজকে একটা টপিক হচ্ছে কিভাবে একটা ওয়েব ভিউ অ্যাপে লোডিং বার বা প্রগ্রেসবার এড করবেন।
প্রগ্রেসবার কি:
প্রোগ্রেসবার হলো একটি ইন্ডিকেটর বা সূচক, যা কোনও প্রক্রিয়া বা অগ্রগতি বা স্থিতি প্রদর্শন করে। ওয়েব ভিউ অ্যাপে প্রগ্রেসবার একটি গ্রাফিক্যাল ইন্ডিকেটর হতে পারে যা ব্যবহারকারীদের কোন পেজ লোডিং সময়ে অগ্রগতি সম্পন্ন হতে দেখাতে ব্যবহৃত হয়।
কেন লোডিং বার এড করবেন :
ধরুন আপনি একটা ওয়েব ভিউ অ্যাপ বানালেন তবে এটাতে সব কিছু ফিচার দিলেন শুধু লোডিং বার দিলেন না বা আপনার ওয়েবসাইটে ও লোডিং বার নেই তাহলে আপনার অ্যাপটা দেখতে তেমন সুন্দর ও হবে না এবং ইউজার ফ্রেন্ডলিও হবে না। যার কারণে ইউজার ব্যবহার করতে তেমন আগ্রহী হবে না। তাই প্রগ্রেসবার এড করা আমি মনে করি জরুরি।
কিভাবে এড করবেন আর্টিকেলে না বুঝলে নিচে ভিডিও দেওয়া হয়েছে ভিডিও দেখে করে নিবেন।
তো এবার চলেন কিভাবে এড করবেন প্রগ্রেসবার সে টপিকে আসি।
প্রথমেই আমাদের ইন্টারনেট পার্মিশন নিতে হবে তো চলুন ইন্টারনেট পার্মিশন নিয়ে নিই
Internet Permission
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
এবার মেনিফেস্টে অ্যাপ্লিকেশন ট্যাগের ভিতরে একটা পারমিশন দিতে হবে
Http to https
android:usesCleartextTraffic="true"
এখন আমাদের ডিপেনডেন্সি ইমপ্লিমেন্ট করতে হবে
Lottie Dependencies
//Lottie anim implementation "com.airbnb.android:lottie:3.4.0"
এখন মেইন একটিভিতে কাজ
activity_main.xml
<WebView android:id="@+id/webview" android:layout_width="match_parent" android:layout_height="match_parent" /> <com.airbnb.lottie.LottieAnimationView android:visibility="invisible" android:layout_centerInParent="true" android:id="@+id/loading" android:layout_width="130dp" android:layout_height="130dp" app:lottie_rawRes="@raw/loading" app:lottie_autoPlay="true" app:lottie_loop="true"/>
এরপর জাবাতে নিচে কোড অনুযায়ী করে ফেলি তাহলেই আমাদের কাজ শেষ।
Java for stylish Progress bar
public class MainActivity extends AppCompatActivity { WebView webview; LottieAnimationView loading; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); getWindow().requestFeature(Window.FEATURE_PROGRESS); setContentView(R.layout.activity_main); webview = findViewById(R.id.webview); loading = findViewById(R.id.loading); getWindow().setFeatureInt( Window.FEATURE_PROGRESS, Window.PROGRESS_VISIBILITY_ON); webview = (WebView) findViewById(R.id.webview); webview.setWebChromeClient(new WebChromeClient() { public void onProgressChanged(WebView view, int progress) { //Make the bar disappear after URL is loaded, and changes string to Loading... //setTitle("Loading..."); setProgress(progress * 100); //Make the bar disappear after URL is loaded // Return the app name after finish loading if(progress == 100){ loading.setVisibility(View.INVISIBLE); }else { loading.setVisibility(View.VISIBLE); } } }); webview.setWebViewClient(new HelloWebViewClient()); webview.getSettings().setJavaScriptEnabled(true); webview.loadUrl("http://www.google.com"); }// OnCreate method Close Here ======================= private class HelloWebViewClient extends WebViewClient { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; } } } // Public Class Close Here===============
অর্ডিনারি আইটির নীতিমালা মেনে কমেন্ট করুন। প্রতিটি কমেন্ট রিভিউ করা হয়।
comment url