آموزش برنامه نویسی اندروید (Android)
دسته بندی ( ۴۸۲ آموزش )
نمایش دسته بندی ها (۴۸۲ آموزش)
مباحث اولیه، در برنامه نویسی اندروید
مباحث اولیه، در برنامه نویسی اندروید 28
کار با Activity ها ، در برنامه نویسی اندروید
کار با Activity ها ، در برنامه نویسی اندروید 21
طراحی فایل های xml متناظر با Activity ها و ... (لایه گرافیکی Activity ها و ...)، در برنامه نویسی اندروید
طراحی فایل های xml متناظر با Activity ها و ... (لایه گرافیکی Activity ها و ...)، در برنامه نویسی اندروید 11
کار با برنامه Eclipse (یا همان ADT Bundle)، در برنامه نویسی اندروید
کار با برنامه Eclipse (یا همان ADT Bundle)، در برنامه نویسی اندروید 11
خطاهای رایج در برنامه Eclipse و در برنامه نویسی اندروید
خطاهای رایج در برنامه Eclipse و در برنامه نویسی اندروید 10
کار با برنامه Android Studio ، در برنامه نویسی اندروید
کار با برنامه Android Studio ، در برنامه نویسی اندروید 9
خطاهای رایج در برنامه Android Studio و در برنامه نویسی اندروید
خطاهای رایج در برنامه Android Studio و در برنامه نویسی اندروید 3
تبدیل متغیرها و سایر تبدیل ها، در برنامه نویسی اندروید
تبدیل متغیرها و سایر تبدیل ها، در برنامه نویسی اندروید 9
نمایش عکس و کار با ImageView ، در برنامه نویسی اندروید
نمایش عکس و کار با ImageView ، در برنامه نویسی اندروید 23
نمایش متن و کار با رشته ها (strings) و TextView ، در برنامه نویسی اندروید
نمایش متن و کار با رشته ها (strings) و TextView ، در برنامه نویسی اندروید 38
ساخت دکمه (Button) ، در برنامه نویسی اندروید
ساخت دکمه (Button) ، در برنامه نویسی اندروید 7
ساخت لیست (فهرست) با ListView ، در برنامه نویسی اندروید
ساخت لیست (فهرست) با ListView ، در برنامه نویسی اندروید 12
ساخت EditText، در برنامه نویسی اندروید
ساخت EditText، در برنامه نویسی اندروید 6
مجموعه ویدئوهای آموزش طراحی متریال (Material Design)، در برنامه نویسی اندروید
مجموعه ویدئوهای آموزش طراحی متریال (Material Design)، در برنامه نویسی اندروید 13
طراحی متریال (Material Design)، در برنامه نویسی اندروید
طراحی متریال (Material Design)، در برنامه نویسی اندروید 3
پخش موسیقی، در برنامه نویسی اندروید
پخش موسیقی، در برنامه نویسی اندروید 5
نمایش انیمیشن، در برنامه نویسی اندروید
نمایش انیمیشن، در برنامه نویسی اندروید 3
تغییر ویژگی های کلی برنامه اندروید
تغییر ویژگی های کلی برنامه اندروید 3
ذخیره اطلاعات با SharedPreferences ، در برنامه نویسی اندروید
ذخیره اطلاعات با SharedPreferences ، در برنامه نویسی اندروید 2
پایگاه داده (SQLite Database)، در برنامه نویسی اندروید
پایگاه داده (SQLite Database)، در برنامه نویسی اندروید 10
تبادل اطلاعات بین برنامه اندروید و سرور اینترنتی (اینترنت)، در برنامه نویسی اندروید
تبادل اطلاعات بین برنامه اندروید و سرور اینترنتی (اینترنت)، در برنامه نویسی اندروید 21
نمایش یک صفحه اینترنتی یا کدهای HTML (کار با WebView) و ساخت لینک، در برنامه نویسی اندروید
نمایش یک صفحه اینترنتی یا کدهای HTML (کار با WebView) و ساخت لینک، در برنامه نویسی اندروید 8
حلقه ها (for و while و ...)، در برنامه نویسی اندروید
حلقه ها (for و while و ...)، در برنامه نویسی اندروید 2
نمایش پیام به کاربر (Dialog و AlertDialog و Toast و Notification و ...)، در برنامه نویسی اندروید
نمایش پیام به کاربر (Dialog و AlertDialog و Toast و Notification و ...)، در برنامه نویسی اندروید 11
ویژگی های صفحه نمایش و چرخش آن، در برنامه نویسی اندروید
ویژگی های صفحه نمایش و چرخش آن، در برنامه نویسی اندروید 10
به دست آوردن ویژگی های کلی برنامه اندروید، در برنامه نویسی اندروید
به دست آوردن ویژگی های کلی برنامه اندروید، در برنامه نویسی اندروید 4
به دست آوردن ویژگی های گوشی کاربر، در برنامه نویسی اندروید
به دست آوردن ویژگی های گوشی کاربر، در برنامه نویسی اندروید 5
بازی سازی، در برنامه نویسی اندروید
بازی سازی، در برنامه نویسی اندروید 1
به اشتراک گذاری (share)، در برنامه نویسی اندروید
به اشتراک گذاری (share)، در برنامه نویسی اندروید 5
کار با فایل ها و فولدرها در حافظه خارجی (External Storage)، در برنامه نویسی اندروید
کار با فایل ها و فولدرها در حافظه خارجی (External Storage)، در برنامه نویسی اندروید 15
کار با پوشه های raw و assets ، در برنامه نویسی اندروید
کار با پوشه های raw و assets ، در برنامه نویسی اندروید 2
عملیات های ریاضی، در برنامه نویسی اندروید
عملیات های ریاضی، در برنامه نویسی اندروید 13
کار با دوربین (Camera)، در برنامه نویسی اندروید
کار با دوربین (Camera)، در برنامه نویسی اندروید 3
کار با action bar ، در برنامه نویسی اندروید
کار با action bar ، در برنامه نویسی اندروید 4
کار با کلاس ها (class) ، در برنامه نویسی اندروید
کار با کلاس ها (class) ، در برنامه نویسی اندروید 4
کار با package ها ، در برنامه نویسی اندروید
کار با package ها ، در برنامه نویسی اندروید 2
نرم افزارهای شبیه ساز برای اجرای برنامه های اندروید بر روی سیستم عامل کامپیوتر (مثل ویندوز)
نرم افزارهای شبیه ساز برای اجرای برنامه های اندروید بر روی سیستم عامل کامپیوتر (مثل ویندوز) 2
امنیت، در برنامه نویسی اندروید
امنیت، در برنامه نویسی اندروید 1
Thread ها، در برنامه نویسی اندروید
Thread ها، در برنامه نویسی اندروید 3
سرویس ها (Service)، در برنامه نویسی اندروید
سرویس ها (Service)، در برنامه نویسی اندروید 9
BroadcastReceiver ، در برنامه نویسی اندروید
BroadcastReceiver ، در برنامه نویسی اندروید 0
تاریخ و زمان و تمامی موارد مرتبط با زمان (عملیات های زمان بندی شده و ...)، در برنامه نویسی اندروید
تاریخ و زمان و تمامی موارد مرتبط با زمان (عملیات های زمان بندی شده و ...)، در برنامه نویسی اندروید 11
AsyncTask ، در برنامه نویسی اندروید
AsyncTask ، در برنامه نویسی اندروید 2
آرایه ها (Arrays)، در برنامه نویسی اندروید
آرایه ها (Arrays)، در برنامه نویسی اندروید 3
لیست آرایه ای (ArrayList)، در برنامه نویسی اندروید
لیست آرایه ای (ArrayList)، در برنامه نویسی اندروید 6
رنگ ها (Colors)، در برنامه نویسی اندروید
رنگ ها (Colors)، در برنامه نویسی اندروید 3
Fragment ها و Tab بندی، در برنامه نویسی اندروید
Fragment ها و Tab بندی، در برنامه نویسی اندروید 8
معرفی کتابخانه ها (Libraries)، در برنامه نویسی اندروید
معرفی کتابخانه ها (Libraries)، در برنامه نویسی اندروید 1
ساخت ProgressDialog یا ProgressBar برای نمایش میزان پیشرفت اجرای یک سری عملیات، در برنامه نویسی اندروید
ساخت ProgressDialog یا ProgressBar برای نمایش میزان پیشرفت اجرای یک سری عملیات، در برنامه نویسی اندروید 3
نسخه اندروید (Android version) و API level (نسخه API) ، در برنامه نویسی اندروید
نسخه اندروید (Android version) و API level (نسخه API) ، در برنامه نویسی اندروید 1
لرزاندن گوشی (vibrate)، در برنامه نویسی اندروید
لرزاندن گوشی (vibrate)، در برنامه نویسی اندروید 2
پرداخت درون برنامه ای، در برنامه نویسی اندروید
پرداخت درون برنامه ای، در برنامه نویسی اندروید 1
 پروژه های اندروید Open Source کاربران کلیدستان
پروژه های اندروید Open Source کاربران کلیدستان 2
ساخت امکانات جانبی (جستجو، لیست علاقه مندی، لوگو، منو و ...) برای برنامه اندروید
ساخت امکانات جانبی (جستجو، لیست علاقه مندی، لوگو، منو و ...) برای برنامه اندروید 5
مباحث عمومی، در برنامه نویسی اندروید
مباحث عمومی، در برنامه نویسی اندروید 35

ساخت یک TextView با قابلیت نمایش مختصری از متن و سپس نمایش کامل متن هنگام اشاره کاربر (Expandable TextView)، در برنامه نویسی اندروید

در این مبحث قصد داریم یک پروژه اندروید بسازیم که در آن یک TextView وجود دارد که برای نمایش یک متن طولانی به کار می رود، اما می خواهیم چون متن طولانی است، ابتدا چند خط اول آن نمایش داده شود و سپس، اگر کاربر بر روی TextView اشاره کرد، متن به طور کامل نمایش داده شود (TextView باز شود). همچنین معکوس این فرآیند نیز امکان پذیر خواهد بود، یعنی وقتی TextView به طور کامل، متن را نمایش داده است، اگر کاربر بر روی TextView اشاره کند، آنگاه تنها همان چند خط اول نمایش داده شود (TextView جمع شود).

دو عکس از دو حالت مربوط به نمایش TextView را در زیر نمایش می دهیم. عکس اول، برای زمانی که TextView تنها چند خط اول را نمایش می دهد :

ساخت یک TextView با قابلیت نمایش مختصری از متن و سپس نمایش کامل متن هنگام اشاره کاربر (Expandable TextView)، در برنامه نویسی اندروید

عکس دوم برای زمانی که TextView ، متن را به طور کامل نمایش می دهد :

ساخت یک TextView با قابلیت نمایش مختصری از متن و سپس نمایش کامل متن هنگام اشاره کاربر (Expandable TextView)، در برنامه نویسی اندروید

در برنامه eclipse ، ابتدا یک پروژه اندروید با نام ExpandableEditText می سازیم (نام package را برابر com.kelidestan.expandableedittext انتخاب می کنیم. نام Activity اصلی را برابر MainActivity انتخاب می کنیم و فایل xml متناظر آن را هم برابر activity_main قرار می دهیم) :

ساخت یک TextView با قابلیت نمایش مختصری از متن و سپس نمایش کامل متن هنگام اشاره کاربر (Expandable TextView)، در برنامه نویسی اندروید

سپس برای پروژه اندروید، یک کلاس (class) جدید با نام ExpandableTextView می سازیم و همچنین در پوشه values از پروژه اندروید، یک فایل xml با نام attr.xml می سازیم :

ساخت یک TextView با قابلیت نمایش مختصری از متن و سپس نمایش کامل متن هنگام اشاره کاربر (Expandable TextView)، در برنامه نویسی اندروید

در فایل attr.xml ، کدهای زیر را می نویسیم :


<?xml version="1.0" encoding="utf-8"?>
<resources>
<declare-styleable name="ExpandableTextView">
<attr name="trimLength" format="integer"/>
</declare-styleable>
</resources>

در فایل ExpandableTextView.java که همان کلاس (class) ساخته شده می باشد، کدهای زیر را می نویسیم :


package com.kelidestan.expandableedittext;

import android.content.Context;
import android.content.res.TypedArray;
import android.text.SpannableStringBuilder;
import android.util.AttributeSet;
import android.view.View;
import android.widget.TextView;

public class ExpandableTextView extends TextView {
    private static final int DEFAULT_TRIM_LENGTH = 200;
    private static final String ELLIPSIS = ".....";

    private CharSequence originalText;
    private CharSequence trimmedText;
    private BufferType bufferType;
    private boolean trim = true;
    private int trimLength;

    public ExpandableTextView(Context context) {
        this(context, null);
    }

    public ExpandableTextView(Context context, AttributeSet attrs) {
        super(context, attrs);

        TypedArray typedArray = context.obtainStyledAttributes(attrs, R.styleable.ExpandableTextView);
        this.trimLength = typedArray.getInt(R.styleable.ExpandableTextView_trimLength, DEFAULT_TRIM_LENGTH);
        typedArray.recycle();

        setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                trim = !trim;
                setText();
                requestFocusFromTouch();
            }
        });
    }

    private void setText() {
        super.setText(getDisplayableText(), bufferType);
    }

    private CharSequence getDisplayableText() {
        return trim ? trimmedText : originalText;
    }

    @Override
    public void setText(CharSequence text, BufferType type) {
        originalText = text;
        trimmedText = getTrimmedText(text);
        bufferType = type;
        setText();
    }

    private CharSequence getTrimmedText(CharSequence text) {
        if (originalText != null && originalText.length() > trimLength) {
            return new SpannableStringBuilder(originalText, 0, trimLength + 1).append(ELLIPSIS);
        } else {
            return originalText;
        }
    }

    public CharSequence getOriginalText() {
        return originalText;
    }

    public void setTrimLength(int trimLength) {
        this.trimLength = trimLength;
        trimmedText = getTrimmedText(originalText);
        setText();
    }

    public int getTrimLength() {
        return trimLength;
    }
}

در واقع با کلاس ExpandableTextView ، عنصری با نام ExpandableTextView را در پروژه اندروید ساخته ایم که در هر فایل xml که آن را تعریف کنیم، دقیقا همین مشخصه های باز شدن و جمع شدن را خواهد داشت (یک TextView که دارای ویژگی باز شدن و جمع شدن می باشد). بنابراین باید دقت داشت که اگر یک عنصر TextView در فایل های xml پروژه اندروید تعریف کنید، همان ویژگی های معمولی TextView را خواهد داشت، اما اگر نیاز به قابلیت باز شدن و جمع شدن دارید، باید یک عنصر ExpandableTextView در فایل xml تعریف کنید.

در واقع کلاس ExpandableTextView را بر اساس توسعه کلاس TextView ساخته ایم. این مورد در خط زیر از کدهای کلاس ExpandableTextView نوشته شده است :


public class ExpandableTextView extends TextView {

در کد بالا، به کلمه extends دقت کنید.

در فایل activity_main.xml ، کدهای زیر را می نویسیم :


<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    <com.kelidestan.expandableedittext.ExpandableTextView
         android:id="@+id/expandableTextView"
         android:layout_width="fill_parent"
         android:layout_height="wrap_content" />

</RelativeLayout>

همان طور که مشاهده می کنید، در آن یک عنصر ExpandableTextView تعریف کرده ایم و نکته مهم این است که قبل از نام ExpandableTextView ، نام package برنامه اندروید را نوشته ایم :


com.kelidestan.expandableedittext.ExpandableTextView

بنابراین شما برای پروژه اندروید خود، باید نام package برنامه اندروید خود را بنویسید.

در فایل MainActivity.java ، کدهای زیر را می نویسیم :


package com.kelidestan.expandableedittext;

import android.app.Activity;
import android.os.Bundle;

public class MainActivity extends Activity {

        @Override
        protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_main);
               
                String yourText = "kelidestan.com kelidestan.com kelidestan.com kelidestan.com" +
                                "kelidestan.com kelidestan.com kelidestan.com kelidestan.com " +
                                "kelidestan.com kelidestan.com kelidestan.com kelidestan.com " +
                                "kelidestan.com kelidestan.com kelidestan.com kelidestan.com " +
                                "kelidestan.com kelidestan.com kelidestan.com kelidestan.com " +
                                "kelidestan.com kelidestan.com kelidestan.com kelidestan.com " +
                                "kelidestan.com kelidestan.com kelidestan.com kelidestan.com " +
                                "kelidestan.com kelidestan.com kelidestan.com kelidestan.com " +
                                "kelidestan.com kelidestan.com kelidestan.com kelidestan.com " +
                                "kelidestan.com kelidestan.com kelidestan.com kelidestan.com " +
                                "kelidestan.com kelidestan.com kelidestan.com kelidestan.com";

                ExpandableTextView expandableTextView = (ExpandableTextView) findViewById(R.id.expandableTextView);
                expandableTextView.setText(yourText);
        }


}

پروژه اندروید آماده است و شما می توانید آن را با روش دلخواهتان تست کنید.

من برنامه اندروید را بر روی یک گوشی اندروید واقعی تست می کنم، با اجرا شدن برنامه اندروید، صفحه زیر نمایش داده می شود :

ساخت یک TextView با قابلیت نمایش مختصری از متن و سپس نمایش کامل متن هنگام اشاره کاربر (Expandable TextView)، در برنامه نویسی اندروید

من بر روی متن اشاره می کنم و بنابراین، ادامه متن نیز نمایش داده می شود :

ساخت یک TextView با قابلیت نمایش مختصری از متن و سپس نمایش کامل متن هنگام اشاره کاربر (Expandable TextView)، در برنامه نویسی اندروید

دوباره بر روی متن اشاره می کنم تا تنها چند خط اول متن نمایش داده شود :

ساخت یک TextView با قابلیت نمایش مختصری از متن و سپس نمایش کامل متن هنگام اشاره کاربر (Expandable TextView)، در برنامه نویسی اندروید

فایل های پروژه اندروید را می توانید از لینک های زیر دریافت کنید :

کدهای این پروژه اندروید، بر اساس منبع زیر نوشته شده اند :

http://stackoverflow.com/questions/15627530/android-expandable-textview-with-animation

نویسنده علیرضا گلمکانی
شماره کلید 823
گزینه ها
به اشتراک گذاری (Share) در شبکه های اجتماعی
نظرات 0 0 0

ارسال نظر جدید (بدون نیاز به عضو بودن در وب سایت)

جستجو در کلیدستان، توسط گوگل

جستجو در عنوان کلیدها

دسترسی سریع

کلید
×

شماره کلید


دسته بندی
×

شماره دسته کلید


جستجو
×

جستجو


کلمات کلیدی

راهنمای کلمات کلیدی (کلاس ها، توابع، عناصر و ...) در برنامه نویسی اندروید، بر اساس حرف اول کلمه کلیدی :

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

developer.android.com