दिलचस्प पोस्ट
स्विफ्ट में ठोस रंग के साथ UIImage बनाएं पायथन में पायथन कोड वाले स्ट्रिंग को मैं कैसे निष्पादित कर सकता हूं? सही रास्ते के नीचे नहीं मिला मैं जावास्क्रिप्ट के साथ एक सीएसवी स्ट्रिंग कैसे पार्स कर सकता हूं, जिसमें डेटा में कॉमा शामिल है? AngularJS के साथ गहरे मर्ज ऑब्जेक्ट पायथन की स्टडब्लब का उपयोग करके स्थानीय आईपी पते ढूँढना कैसे एमपी 3 में अवधि को पुनः प्राप्त करें। NET? आईओएस एप के भीतर से बारकोड जेनरेशन एक पायथन स्क्रिप्ट चलते समय vcvarsall.bat नहीं मिल सकता SQL: एक पूर्णनाम फ़ील्ड से पहले, मध्य और अंतिम नाम को पार्स करें अगर मैं बाइंड के साथ एक ईवेंट हैंडलर को बाध्य नहीं किया है या पहले से ही क्लिक किया है तो क्या मैं एक <a> लिंक का पालन करने के लिए jquery click () पर कॉल कर सकता हूं? हाइबरनेट में प्रथम और द्वितीय स्तर की कैशिंग क्या है? कैसे 2 या अधिक .WAV फ़ाइलें एक साथ कार्यक्रम में शामिल होने के लिए? किस प्रकार परिभाषित करता है कि `__eq__` अविश्वसनीय हैं? सर्वर साइड ऑप्टिमाइज़ेशन के लिए $ http द्वारा सर्वर के साथ कोणीय- UI के टाइपआहेड को कैसे टाई?

क्या एंड्रॉइड में एक टेक्स्टव्यू में खड़ी लिखना संभव है?

मान लें कि आपके पास एक सामान्य टेक्स्टव्यू है, जिसमें "स्टैकवॉवरफ्लो" लिखा गया है, क्या स्क्रीन के शीर्ष पर तल पर एस और डब्लू डब्ल्यू के पास -90 ° तक टेक्स्टव्यू को घुमाने संभव है? बेशक मैं एक छवि के रूप में अपना पाठ लिख सकता हूं, इसे घुमाने और उस तरह से इसका इस्तेमाल कर सकता हूं, लेकिन मुझे इस पाठ में अभी दिलचस्पी है। धन्यवाद।

Solutions Collecting From Web of "क्या एंड्रॉइड में एक टेक्स्टव्यू में खड़ी लिखना संभव है?"

आप अपना टेक्स्टव्यू सेट कर सकते हैं जैसे आप सामान्य रूप से करेंगे

उदाहरण के लिए:

<TextView android:id="@+id/txtview" android:layout_height="fill_parent" android:layout_width="wrap_content" /> 

और अपनी गतिविधि में फ़ंक्शन लिखना

  • अपने पाठ में वर्णों को उल्टा करें
  • प्रत्येक अक्षर के बाद \n सम्मिलित करें

और फिर पाठ को TextView पर सेट करें।

यदि आप \n को सम्मिलित नहीं करना चाहते हैं, तो आपको android:layout_width का आकार सेट करना होगा android:layout_width और फ़ॉन्ट आकार के साथ खेलना होगा, जिस पर एक ही पंक्ति पर 2 अक्षर फिटिंग नहीं है और कोई कटौती नहीं है

संपादित करें अगर मैंने आपको सही ढंग से समझा है, तो आप एनीमेशन का उपयोग करके आप क्या चाहते हैं।

उदाहरण के लिए

res/animation/myanim.xml :

 <rotate xmlns:android="http://schemas.android.com/apk/res/android" android:fromDegrees="0" android:toDegrees="-90" android:pivotX="50%" android:duration="0" /> 

आपको यह परिभाषित करने के लिए इस फ़ाइल के साथ खेलना होगा कि आप कहां अपना टेक्स्ट दृश्य रखना चाहते हैं।

आपकी गतिविधि में:

  TextView t = (TextView)findViewById(R.id.txtview); String txt = "Stackoverflow"; t.setText(txt); RotateAnimation ranim = (RotateAnimation)AnimationUtils.loadAnimation(this, R.anim.myanim); ranim.setFillAfter(true); //For the textview to remain at the same place after the rotation t.setAnimation(ranim); 

मेरे लिए काम किया:

 public class VerticalTextView extends TextView { private int _width, _height; private final Rect _bounds = new Rect(); public VerticalTextView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } public VerticalTextView(Context context, AttributeSet attrs) { super(context, attrs); } public VerticalTextView(Context context) { super(context); } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { super.onMeasure(widthMeasureSpec, heightMeasureSpec); // vise versa _height = getMeasuredWidth(); _width = getMeasuredHeight(); setMeasuredDimension(_width, _height); } @Override protected void onDraw(Canvas canvas) { canvas.save(); canvas.translate(_width, _height); canvas.rotate(-90); TextPaint paint = getPaint(); paint.setColor(getTextColors().getDefaultColor()); String text = text(); paint.getTextBounds(text, 0, text.length(), _bounds); canvas.drawText(text, getCompoundPaddingLeft(), (_bounds.height() - _width) / 2, paint); canvas.restore(); } private String text() { return super.getText().toString(); } } 

xml:

 <VerticalTextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="left|center_vertical" android:background="@color/feedback_background" android:padding="4dip" android:text="@string/feedback" android:textColor="@color/feedback_text_color" android:textSize="@dimen/text_xlarge" /> 

इसे इस्तेमाल करे। यह मेरे लिए ठीक काम करता है। यह पाठ की एक पंक्ति खड़ी प्रदर्शित कर सकता है, लेकिन सिर्फ एक पंक्ति रंग, आकार, पैडिंग, मार्जिन और पृष्ठभूमि सभी काम ठीक।

 public class VerticalTextView extends TextView { public VerticalTextView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } public VerticalTextView(Context context, AttributeSet attrs) { super(context, attrs); } public VerticalTextView(Context context) { super(context); } @Override protected void onDraw(Canvas canvas) { final ColorStateList csl = getTextColors(); final int color = csl.getDefaultColor(); final int paddingBottom = getPaddingBottom(); final int paddingTop = getPaddingTop(); final int viewWidth = getWidth(); final int viewHeight = getHeight(); final TextPaint paint = getPaint(); paint.setColor(color); final float bottom = viewWidth * 9.0f / 11.0f; Path p = new Path(); p.moveTo(bottom, viewHeight - paddingBottom - paddingTop); p.lineTo(bottom, paddingTop); canvas.drawTextOnPath(getText().toString(), p, 0, 0, paint); } } 

यदि आप एपीआई 11 या बाद के संस्करण का उपयोग कर रहे हैं, तो आप कोशिश कर सकते हैं:

 TextView t = (TextView) findViewById(R.id.txtview); String txt = "Stackoverflow"; t.setText(txt); t.setRotation(90); // 90 degree rotation 

हम एक्सएमएल व्यू के साथ रोटेशन सेट कर सकते हैं

  <TextView android:id="@+id/txtview" android:rotation="-90" android:text="123" android:layout_height="wrap_content" android:layout_width="wrap_content" /> 

मैंने एक और स्टैक ओव्हरफ्लो प्रश्न में एक समाधान प्रदान किया। आप देखें और अपने onMeasure() और onMeasure() onDraw() विधियों को ओवरराइड करते हुए onMeasure() प्राप्त कर सकते हैं। हालांकि, यह सभी पाठदृश्य विशेषताओं का समर्थन नहीं करेगा, बल्कि मुख्य रूप से पैडिंग, आकार, रंग और फ़ॉन्ट जैसे।

 import android.annotation.TargetApi; import android.content.Context; import android.graphics.Canvas; import android.graphics.Paint; import android.graphics.Rect; import android.graphics.Typeface; import android.os.Build; import android.text.TextPaint; import android.util.AttributeSet; import android.util.Log; import android.util.TypedValue; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; public class VerticalLabelView extends View { private final String LOG_TAG = "VerticalLabelView"; private int _ascent = 0; private int _leftPadding = 0; private int _topPadding = 0; private int _rightPadding = 0; private int _bottomPadding = 0; private int _textSize = 0; private int _measuredWidth; private int _measuredHeight; private Rect _textBounds; private TextPaint _textPaint; private String _text = ""; private TextView _tempView; private Typeface _typeface = null; public VerticalLabelView(Context context) { super(context); initLabelView(); } public VerticalLabelView(Context context, AttributeSet attrs) { super(context, attrs); initLabelView(); } public VerticalLabelView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); initLabelView(); } @TargetApi(Build.VERSION_CODES.LOLLIPOP) public VerticalLabelView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { super(context, attrs, defStyleAttr, defStyleRes); initLabelView(); } private final void initLabelView() { this._textBounds = new Rect(); this._textPaint = new TextPaint(); this._textPaint.setAntiAlias(true); this._textPaint.setTextAlign(Paint.Align.CENTER); } public void setText(String text) { this._text = text; requestLayout(); invalidate(); } public void setPadding(int padding) { setPadding(padding, padding, padding, padding); } public void setPadding(int left, int top, int right, int bottom) { this._leftPadding = left; this._topPadding = top; this._rightPadding = right; this._bottomPadding = bottom; requestLayout(); invalidate(); } public void setTextSize(int size) { this._textSize = size; this._textPaint.setTextSize(size); requestLayout(); invalidate(); } public void setTextColor(int color) { this._textPaint.setColor(color); invalidate(); } public void setTypeFace(Typeface typeface) { this._typeface = typeface; this._textPaint.setTypeface(typeface); requestLayout(); invalidate(); } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { try { this._textPaint.getTextBounds(this._text, 0, this._text.length(), this._textBounds); this._tempView = new TextView(getContext()); this._tempView.setPadding(this._leftPadding, this._topPadding, this._rightPadding, this._bottomPadding); this._tempView.setText(this._text); this._tempView.setTextSize(TypedValue.COMPLEX_UNIT_PX, this._textSize); this._tempView.setTypeface(this._typeface); this._tempView.measure(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); this._measuredWidth = this._tempView.getMeasuredHeight(); this._measuredHeight = this._tempView.getMeasuredWidth(); this._ascent = this._textBounds.height() / 2 + this._measuredWidth / 2; setMeasuredDimension(this._measuredWidth, this._measuredHeight); } catch (Exception e) { setMeasuredDimension(widthMeasureSpec, heightMeasureSpec); Log.e(LOG_TAG, Log.getStackTraceString(e)); } } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); if (!this._text.isEmpty()) { float textHorizontallyCenteredOriginX = this._measuredHeight / 2f; float textHorizontallyCenteredOriginY = this._ascent; canvas.translate(textHorizontallyCenteredOriginY, textHorizontallyCenteredOriginX); canvas.rotate(-90); canvas.drawText(this._text, 0, 0, this._textPaint); } } }