আমি কীভাবে পাঠ্যদ্বারে অক্ষরের ব্যবধান পরিবর্তন করতে পারি? এটিতে যদি আমার এইচটিএমএল পাঠ্য থাকে (তবে আমি আমার কোডটিতে ওয়েবভিউ ব্যবহার করতে পারি না) সাহায্য করবে।
পিএস আমি এইচটিএমএল পাঠ্যের সাহায্যে পাঠ্যদর্শনটিতে আমার নিজস্ব টাইপফেস ব্যবহার করছি।
আমি কীভাবে পাঠ্যদ্বারে অক্ষরের ব্যবধান পরিবর্তন করতে পারি? এটিতে যদি আমার এইচটিএমএল পাঠ্য থাকে (তবে আমি আমার কোডটিতে ওয়েবভিউ ব্যবহার করতে পারি না) সাহায্য করবে।
পিএস আমি এইচটিএমএল পাঠ্যের সাহায্যে পাঠ্যদর্শনটিতে আমার নিজস্ব টাইপফেস ব্যবহার করছি।
উত্তর:
অ্যান্ড্রয়েড পরীক্ষা করুন : টেক্সটস্কেলেক্স
আপনার কতটা ব্যবধান প্রয়োজন তা নির্ভর করে এটি সাহায্য করতে পারে। এটি টেক্সটভিউ-তে অক্ষরের ব্যবধানের সাথে দূরবর্তীভাবে সম্পর্কিত thing
সম্পাদনা করুন: দয়া করে এপিআই 21 (ললিপপ) দিয়ে শুরু করার জন্য এটি আপডেট করার জন্য আরও উন্নততর পদ্ধতির জন্য নীচে @ জেরব্যাক জাকুবের প্রতিক্রিয়া দেখুন
letterSpacing
বনাম textScaleX
কী বিশাল পার্থক্য
এপিআই 21 যেহেতু একটি বিকল্প সেট চিঠি ব্যবধান রয়েছে। আপনি পদ্ধতি সেটলেটারস্পেসিংটি কল করতে পারেন বা এট্রিবিউট লেটারস্পেসিং সহ এটি এক্সএমএলে সেট করতে পারেন ।
"1.2dp" in attribute "letterSpacing" cannot be converted to float."
letterSpacing
AS পূর্বরূপে পরিবর্তন করা হয়নি। পরিবর্তনটি দেখতে আমাকে আসলে একটি দৈহিক ডিভাইসে অ্যাপটি চালাতে হয়েছিল।
আরো স্থান:
android:letterSpacing="0.1"
কম স্থান:
android:letterSpacing="-0.07"
letterSpacing
0.0. বিকাশকারী
এই উত্তর পেড্রোর উত্তরের উপর ভিত্তি করে তবে অ্যাডজাস্ট করা হয়েছে তাই পাঠ্য বৈশিষ্ট্যটি ইতিমধ্যে সেট করা থাকলে এটিও কাজ করে:
package nl.raakict.android.spc.widget;
import android.content.Context;
import android.text.Spannable;
import android.text.SpannableString;
import android.text.style.ScaleXSpan;
import android.util.AttributeSet;
import android.widget.TextView;
public class LetterSpacingTextView extends TextView {
private float letterSpacing = LetterSpacing.BIGGEST;
private CharSequence originalText = "";
public LetterSpacingTextView(Context context) {
super(context);
}
public LetterSpacingTextView(Context context, AttributeSet attrs){
super(context, attrs);
originalText = super.getText();
applyLetterSpacing();
this.invalidate();
}
public LetterSpacingTextView(Context context, AttributeSet attrs, int defStyle){
super(context, attrs, defStyle);
}
public float getLetterSpacing() {
return letterSpacing;
}
public void setLetterSpacing(float letterSpacing) {
this.letterSpacing = letterSpacing;
applyLetterSpacing();
}
@Override
public void setText(CharSequence text, BufferType type) {
originalText = text;
applyLetterSpacing();
}
@Override
public CharSequence getText() {
return originalText;
}
private void applyLetterSpacing() {
if (this == null || this.originalText == null) return;
StringBuilder builder = new StringBuilder();
for(int i = 0; i < originalText.length(); i++) {
String c = ""+ originalText.charAt(i);
builder.append(c.toLowerCase());
if(i+1 < originalText.length()) {
builder.append("\u00A0");
}
}
SpannableString finalText = new SpannableString(builder.toString());
if(builder.toString().length() > 1) {
for(int i = 1; i < builder.toString().length(); i+=2) {
finalText.setSpan(new ScaleXSpan((letterSpacing+1)/10), i, i+1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
}
}
super.setText(finalText, BufferType.SPANNABLE);
}
public class LetterSpacing {
public final static float NORMAL = 0;
public final static float NORMALBIG = (float)0.025;
public final static float BIG = (float)0.05;
public final static float BIGGEST = (float)0.2;
}
}
আপনি যদি এটি প্রোগ্রামক্রমে ব্যবহার করতে চান:
LetterSpacingTextView textView = new LetterSpacingTextView(context);
textView.setSpacing(10); //Or any float. To reset to normal, use 0 or LetterSpacingTextView.Spacing.NORMAL
textView.setText("My text");
//Add the textView in a layout, for instance:
((LinearLayout) findViewById(R.id.myLinearLayout)).addView(textView);
null
চেক ইন প্রয়োজন applyLetterSpacing
, কিন্তু তা ছাড়া জীবন রক্ষাকারী!
এপিআই> = 21 এর পরে টেক্সটভিউ দ্বারা সরবরাহ করা ইনবিল্ড পদ্ধতি রয়েছে setLetterSpacing
আরও জন্য এই পরীক্ষা করুন
আমি একটি কাস্টম ক্লাস তৈরি করেছি যা TextView
এই সমস্যাটিকে প্রসারিত এবং সমাধান করে ... আমার উত্তর এখানে দেখুন =)
অ্যান্ড্রয়েড যেমন কোনও বিষয় সমর্থন করে না, আপনি এটি ফন্টক্রিটরের সাহায্যে ম্যানুয়ালি করতে পারেন। এটিতে ফন্ট সংশোধন করার জন্য ভাল বিকল্প রয়েছে। আমি এই সরঞ্জামটি একটি কাস্টম ফন্ট তৈরি করতে ব্যবহার করেছি, যদিও এতে কিছু সময় লাগে তবে আপনি সর্বদা আপনার প্রকল্পগুলিতে এটি ব্যবহার করতে পারেন।
আপনার পাঠ্যদর্শনটিতে এইচটিএমএল পাঠ্য এম্বেড করার জন্য আপনি Html.fromHTML()
বাক্য গঠন ব্যবহার করতে পারেন । আরও তথ্য আপনি http://developer.android.com/references/android/text/Html.html#fromHtml%28java.lang.String%29 থেকে পাবেন
android:letterSpacing=".05"