android - সকল - ট্রেস এলিমেন্ট




একটি অ্যাপ্লিকেশন উইজেট টেক্সট মাধ্যমে ধর্মঘট করার জন্য একটি সহজ উপায় আছে? (12)

অ্যান্ড্রয়েডের অ্যাপ উইজেটের মধ্যে পাঠ্য হ্রাস করার সহজ উপায় থাকলে আমি ভাবছিলাম। একটি স্বাভাবিক কার্যকলাপে, এটি পাঠ্যবিশেষ পতাকাগুলি ব্যবহার করে বেশ সহজ:

textView.setPaintFlags(textView.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG);

কিন্তু যেহেতু একটি অ্যাপ উইজেটে, আমি কেবলমাত্র রিমোটউইউ ব্যবহার করতে পারি ... আমি জানি না এটি সম্ভব কিনা

কেউ এই সম্পর্কে কিছু জানেন?

ধন্যবাদ!


Multiline TextView এর জন্য আপনি অ্যান্ড্রয়েড.text.style.CharacterStyle ব্যবহার করা উচিত:

SpannableString spannable = new SpannableString(text);
spannable.setSpan(new StrikethroughSpan(), 0, text.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
remoteViews.setTextViewText(R.id.itemText, spannable);

অ্যানড্রইড সংস্থার প্রশংসনীয় ভাল এইচটিএমএল মার্কআপ সমর্থন আছে
নিচের HTML উপাদানগুলি সমর্থিত:

Bold: <b>, <em>
Italic: <i>, <cite>, <dfn>
25% larger text: <big>
20% smaller text: <small>
Setting font properties: <font face=”font_family color=”hex_color”>. Examples of possible font families include monospace, serif, and sans_serif.
Setting a monospace font family: <tt>
Strikethrough: <s>, <strike>, <del>
Underline: <u>
Superscript: <sup>
Subscript: <sub>
Bullet points: <ul>, <li>
Line breaks: <br>
Division: <div>
CSS style: <span style=”color|background_color|text-decoration”>
Paragraphs: <p dir=”rtl | ltr style=”…”>

উল্লেখ্য যে এটি Android স্টুডিও লেআউট পূর্বরূপগুলিতে রেন্ডার করা হয় না। অ্যান্ড্রয়েড স্টুডিও 3.3.1 সর্বশেষ পরীক্ষা

উদাহরণস্বরূপ, স্ট্রাইকথ্রু এটি দেখতে পাবে:

<string name="cost"><strike>$10</strike> $5 a month</string>

আপনি যদি স্ট্রিংগুলি ব্যবহার করেন তবে এটি সত্যিই সহজ।

<string name="line"> Not crossed <strike> crossed </strike> </string>

এবং তারপর শুধু:

<TextView 
        ...
         android:text="@string/line"
 />

আপনি যোগ করুন:

TextView variableTv = (TextView) findViewById(R.id.yourText);

আপনি সেট / পরিবর্তনশীল আপনি যোগ করুন:

variableTv.setText("It's Text use Style Strike");

এবং তারপর পরিবর্তনশীল Tv মধ্যে .setPaintFlags যোগ করুন:

variableTv.setPaintFlags(variableTv.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG);

আমি জানি, আমি পুরাতন প্রশ্নটির উত্তর দিচ্ছি, এটি অন্য কারো জন্য সহায়ক হতে পারে, যাতে পাঠ্যসূচিটির নির্দিষ্ট অংশটিকে প্রোগ্রাম্যাটিকভাবে আঘাত করে।

TextView textView = (TextView) findViewById(R.id.textView);
textView.setText("Text need to be set here", TextView.BufferType.SPANNABLE);
Spannable spannable = (Spannable) textView.getText();
spannable.setSpan(new StrikethroughSpan(), 5, 8, Spanned.SPAN_INCLUSIVE_EXCLUSIVE);

সুতরাং, এই উদাহরণ কোডের মধ্যে, 5 শুরু হচ্ছে এবং 8 টি পাঠ্যের শেষ অবস্থানটি হ্রাস করা দরকার, তাই এই কোডটি চালানোর পরে আমরা স্ট্রাইকড আউট দিয়ে "প্রয়োজনীয়" পাঠ্য পেতে পারি। এটা অন্য কেউ জন্য সহায়ক হবে আশা করি।


আমি নিয়মিত (স্থানীয়) TextView এটি করেছি, এবং দূরবর্তী বৈচিত্র্যের উপর এটি কাজ করা উচিত কারণ ডক্সগুলি দুটি পদ্ধতির সমতুল্য পদ্ধতিটিকে তালিকাভুক্ত করে:

remote_text_view.setText(Html.fromHtml("This is <del>crossed off</del>."));


এই কোড চেষ্টা করুন

textview.setText((Html.fromHtml("<strike>hello world!</strike>")));

একটি drawable তৈরি করুন

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="false">
        <shape android:shape="line">
            <stroke android:width="1dp"
                android:color="@color/onePlusRed" />
        </shape>
    </item>
</selector>

এবং foreground হিসাবে এটি ব্যবহার করুন।
android:foreground="@drawable/strike_through"


এটি একটি পাঠ্যবইতে প্রোগ্রামিক্যালি করার জন্য, অন্যান্য মতামতগুলিতে untested >>

TextView tv = (TextView) findViewById(R.id.mytext);
tv.setText("This is strike-thru");
tv.setPaintFlags(tv.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG);

এটি প্রোগ্রাম করার মতো অন্য উপায় যা পেইন্ট ওয়েকে চেয়ে হ্যাকের মত একটু কম দেখায়:

করার পরিবর্তে:

tv.setText(s);

একটি করুন:

private static final StrikethroughSpan STRIKE_THROUGH_SPAN = new StrikethroughSpan();
...
tv.setText(s, TextView.BufferType.SPANNABLE);
Spannable spannable = (Spannable) tv.getText();
spannable.setSpan(STRIKE_THROUGH_SPAN, 0, s.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

যদি আপনার একটি একক শব্দ থাকে তবে আমরা টেকসই ব্যবহার করতে পারি। নিম্নলিখিত উদাহরণ:

<item android:state_pressed="false"><shape android:shape="line">
        <stroke android:width="2dp" android:color="#ffffff" />
    </shape>
</item>

যদি আপনার একাধিক লাইন থাকে তবে আপনি নিম্নলিখিত কোড ব্যবহার করতে পারেন:

TextView someTextView = (TextView) findViewById(R.id.some_text_view);
someTextView.setText(someString);
someTextView.setPaintFlags(someTextView.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG)

2015 আপডেট: লোকেরা, এটি Android এর পুরানো সংস্করণের জন্য। আধুনিক সমাধান জন্য অন্যান্য উত্তর দেখুন!

সম্পূর্ণ পাঠ্য দৃশ্যের মাধ্যমে হরতাল করতে, স্ট্রাইকথ্রু প্রভাবটি অনুকরণ করতে আপনি একটি নির্দিষ্ট ব্যাকগ্রাউন্ড চিত্রটি ব্যবহার করতে পারেন:

android:background="@drawable/bg_strikethrough"

যেখানে bg_strikethrough 9-প্যাচ হয় যা মাঝের মধ্য দিয়ে একটি কঠিন লাইন রাখে, উভয় পাশে ক্রমবর্ধমান থাকে, তবে আপনি যে bg_strikethrough মনে করেন তা যুক্তিসঙ্গত। আমি এই মত এক ব্যবহার করেছি:

(স্বচ্ছতার জন্য বর্ধিত .. 1300%!)

এটি আমার এইচডিপিআই সংস্করণ, সুতরাং এটি সংরক্ষণ করুন (প্রথমটি http://i.stack.imgur.com/nt6BK.png ) res/drawable-hdpi/bg_strikethrough.9.png এবং কনফিগারেশন এভাবে কাজ করবে:





strikethrough