কম্পিউটার

কোটলিন ব্যবহার করে অ্যান্ড্রয়েডে পেজিনেশন টেক্সট কীভাবে তৈরি করবেন?


এই উদাহরণটি দেখায় যে কিভাবে কোটলিন ব্যবহার করে অ্যান্ড্রয়েডে পেজিনেশন টেক্সট তৈরি করা যায়।

ধাপ 1 − অ্যান্ড্রয়েড স্টুডিওতে একটি নতুন প্রকল্প তৈরি করুন, ফাইল ⇒ নতুন প্রকল্পে যান এবং একটি নতুন প্রকল্প তৈরি করতে সমস্ত প্রয়োজনীয় বিবরণ পূরণ করুন৷

ধাপ 2 − res/layout/activity_main.xml-এ নিম্নলিখিত কোড যোগ করুন।

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="https://schemas.android.com/apk/res/android"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:paddingLeft="16dp"
   android:paddingTop="16dp"
   android:paddingRight="16dp"
   android:paddingBottom="16dp">
   <LinearLayout
      android:layout_width="match_parent"
      android:layout_height="match_parent">
   <Button
      android:id="@+id/buttonBack"
      style="?android:attr/buttonBarButtonStyle"
      android:layout_width="0dp"
      android:layout_height="match_parent"
      android:layout_weight="1"
      android:background="@android:color/transparent" />
   <Button
      android:id="@+id/buttonForward"
      style="?android:attr/buttonBarButtonStyle"
      android:layout_width="0dp"
      android:layout_height="match_parent"
      android:layout_weight="1"
      android:background="@android:color/transparent" />
   </LinearLayout>
   <TextView
      android:id="@+id/tv"
      android:layout_width="match_parent"
      android:layout_height="match_parent" />
</RelativeLayout>

ধাপ 3 − নিম্নলিখিত কোডটি src/MainActivity.kt

এ যোগ করুন
import android.graphics.Color
import android.graphics.Typeface
import android.os.Bundle
import android.text.Html
import android.text.Spannable
import android.text.SpannableString
import android.text.TextUtils
import android.text.style.ForegroundColorSpan
import android.text.style.RelativeSizeSpan
import android.text.style.StyleSpan
import android.view.ViewTreeObserver
import android.widget.Button
import android.widget.TextView
import androidx.appcompat.app.AppCompatActivity
class MainActivity : AppCompatActivity() {
   lateinit var buttonBack: Button
   lateinit var buttonForward: Button
   private lateinit var textView: TextView
   private var pagination: Pagination? = null
   private lateinit var charSequence: CharSequence
   private var currentIndex = 0
   override fun onCreate(savedInstanceState: Bundle?) {
      super.onCreate(savedInstanceState)
      setContentView(R.layout.activity_main)
      title = "KotlinApp"
      buttonBack = findViewById(R.id.buttonBack)
      buttonForward = findViewById(R.id.buttonForward)
      textView = findViewById(R.id.tv)
      val htmlString = Html.fromHtml(getString(R.string.html_string))
      val spanString = SpannableString(getString(R.string.long_string))
      spanString.setSpan(ForegroundColorSpan(Color.BLUE), 0, 24, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE)
      spanString.setSpan(RelativeSizeSpan(2f), 0, 24, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE)
      spanString.setSpan(StyleSpan(Typeface.MONOSPACE.style), 0, 24, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE)
      spanString.setSpan(ForegroundColorSpan(Color.BLUE), 536, spanString.length,
Spannable.SPAN_EXCLUSIVE_EXCLUSIVE)
      spanString.setSpan(RelativeSizeSpan(2f), 536, spanString.length, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE)
      spanString.setSpan(StyleSpan(Typeface.MONOSPACE.style), 536, spanString.length,
Spannable.SPAN_EXCLUSIVE_EXCLUSIVE)
      charSequence = TextUtils.concat(htmlString, spanString)
      textView.viewTreeObserver.addOnGlobalLayoutListener(object : ViewTreeObserver.OnGlobalLayoutListener {
         override fun onGlobalLayout() {
            // Removing layout listener to avoid multiple calls
            textView.viewTreeObserver.removeOnGlobalLayoutListener(this)
            pagination = Pagination(
               charSequence, textView.width,
               textView.height,
               textView.paint,
               textView.lineSpacingMultiplier,
               textView.lineSpacingExtra,
               textView.includeFontPadding
            )
            update()
         }
      })
      buttonBack.setOnClickListener {
         currentIndex = if ((currentIndex > 0)) currentIndex - 1 else 0
         update()
      }
      buttonForward.setOnClickListener {
         currentIndex = if ((currentIndex <pagination!!.size() - 1)) currentIndex + 1 else pagination!!.size() - 1
         update()
      }
   }
   private fun update() {
      val text = pagination!![currentIndex]
      if (text != null) textView.text = text
   }
}

পদক্ষেপ 4৷ − একটি Kotlin ক্লাস তৈরি করুন এবং নিম্নলিখিত কোড যোগ করুন −

import android.graphics.Color
import android.graphics.Typeface
import android.os.Bundle
import android.text.Html
import android.text.Spannable
import android.text.SpannableString
import android.text.TextUtils
import android.text.style.ForegroundColorSpan
import android.text.style.RelativeSizeSpan
import android.text.style.StyleSpan
import android.view.ViewTreeObserver
import android.widget.Button
import android.widget.TextView
import androidx.appcompat.app.AppCompatActivity
class MainActivity : AppCompatActivity() {
   lateinit var buttonBack: Button
   lateinit var buttonForward: Button
   private lateinit var textView: TextView
   private var pagination: Pagination? = null
   private lateinit var charSequence: CharSequence
   private var currentIndex = 0
   override fun onCreate(savedInstanceState: Bundle?) {
      super.onCreate(savedInstanceState)
      setContentView(R.layout.activity_main)
      title = "KotlinApp"
      buttonBack = findViewById(R.id.buttonBack)
      buttonForward = findViewById(R.id.buttonForward)
      textView = findViewById(R.id.tv)
      val htmlString = Html.fromHtml(getString(R.string.html_string))
      val spanString = SpannableString(getString(R.string.long_string))
      spanString.setSpan(ForegroundColorSpan(Color.BLUE), 0, 24, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE)
      spanString.setSpan(RelativeSizeSpan(2f), 0, 24, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE)
      spanString.setSpan(StyleSpan(Typeface.MONOSPACE.style), 0, 24,
Spannable.SPAN_EXCLUSIVE_EXCLUSIVE)
      spanString.setSpan(ForegroundColorSpan(Color.BLUE), 536, spanString.length,
Spannable.SPAN_EXCLUSIVE_EXCLUSIVE)
      spanString.setSpan(RelativeSizeSpan(2f), 536, spanString.length, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE)
      spanString.setSpan(StyleSpan(Typeface.MONOSPACE.style), 536, spanString.length,
Spannable.SPAN_EXCLUSIVE_EXCLUSIVE)
      charSequence = TextUtils.concat(htmlString, spanString)
      textView.viewTreeObserver.addOnGlobalLayoutListener(object : ViewTreeObserver.OnGlobalLayoutListener {
         override fun onGlobalLayout() {
            // Removing layout listener to avoid multiple calls
            textView.viewTreeObserver.removeOnGlobalLayoutListener(this)
            pagination = Pagination(
               charSequence, textView.width,
               textView.height,
               textView.paint,
               textView.lineSpacingMultiplier,
               textView.lineSpacingExtra,
               textView.includeFontPadding
            )
            update()
         }
      })
      buttonBack.setOnClickListener {
         currentIndex = if ((currentIndex > 0)) currentIndex - 1 else 0
         update()
      }
      buttonForward.setOnClickListener {
         currentIndex = if ((currentIndex < pagination!!.size() - 1)) currentIndex + 1 else       pagination!!.size() - 1
         update()
      }
   }
   private fun update() {
      val text = pagination!![currentIndex]
      if (text != null) textView.text = text
   }
}

ধাপ 5 − androidManifest.xml

-এ নিম্নলিখিত কোড যোগ করুন
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android"
   package="com.example.q11">
   <application
      android:allowBackup="true"
      android:icon="@mipmap/ic_launcher"
      android:label="@string/app_name"
      android:roundIcon="@mipmap/ic_launcher_round"
      android:supportsRtl="true"
      android:theme="@style/AppTheme">
      <activity android:name=".MainActivity">
         <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
         </intent-filter>
      </activity>
   </application>
</manifest>

আপনার অ্যাপ্লিকেশন চালানোর চেষ্টা করা যাক. আমি ধরে নিচ্ছি আপনি আপনার কম্পিউটারের সাথে আপনার আসল অ্যান্ড্রয়েড মোবাইল ডিভাইসটি সংযুক্ত করেছেন৷ অ্যান্ড্রয়েড স্টুডিও থেকে অ্যাপটি চালাতে, আপনার প্রোজেক্টের অ্যাক্টিভিটি ফাইলগুলির একটি খুলুন এবং রানে ক্লিক করুন টুলবার থেকে কোটলিন ব্যবহার করে অ্যান্ড্রয়েডে পেজিনেশন টেক্সট কীভাবে তৈরি করবেন? আইকন। একটি বিকল্প হিসাবে আপনার মোবাইল ডিভাইসটি নির্বাচন করুন এবং তারপরে আপনার মোবাইল ডিভাইসটি পরীক্ষা করুন যা আপনার ডিফল্ট স্ক্রীন প্রদর্শন করবে৷

কোটলিন ব্যবহার করে অ্যান্ড্রয়েডে পেজিনেশন টেক্সট কীভাবে তৈরি করবেন?


  1. অ্যান্ড্রয়েডে পেজিনেটিং টেক্সট কীভাবে তৈরি করবেন?

  2. কোটলিন ব্যবহার করে অ্যান্ড্রয়েডে একটি টেক্সটভিউয়ের ভিতরে একাধিক শৈলী কীভাবে তৈরি করবেন?

  3. কোটলিন ব্যবহার করে অ্যান্ড্রয়েডের একটি পরিষেবা থেকে কীভাবে একটি বিজ্ঞপ্তি পাঠাবেন?

  4. কোটলিন ব্যবহার করে অ্যান্ড্রয়েডে একটি সোয়াইপ রিফ্রেশ লেআউট কীভাবে তৈরি করবেন?