मैं वर्तमान में एक छवि संपादक बना रहा हूं और canvas.drawText() का उपयोग कर छवि पर शीर्ष पर टेक्स्ट खींचने का प्रयास कर रहा हूं। अब तक मैं ऐसा करने में सफल रहा हूं, लेकिन जब उपयोगकर्ता बहुत लंबा टेक्स्ट दर्ज करता है, तो पाठ पृष्ठ के बाहर एक पंक्ति पर जारी रहता है और स्क्रीन की चौड़ाई में खुद को लपेटता नहीं है। मैं ऐसा कैसे कर पाऊंगा? मैंने एक स्थिर लेआउट का उपयोग करने की कोशिश की है लेकिन इसे काम करने के लिए प्रतीत नहीं होता है, क्या किसी को ऐसा करने के लिए कोई ट्यूटोरियल मिला है?टेक्स्ट ड्रैपिंग सहित एंड्रॉइड ड्राटेक्स्ट
स्थिर लेआउट का उपयोग कर एक कैनवास पर ड्राइंग के लिए मेरे समारोह:
public Bitmap createImage(float scr_x,float scr_y,String user_text){
Canvas canvas = new Canvas(image);
scr_x = 100;
scr_y = 100;
final TextPaint tp = new TextPaint(Color.WHITE);
canvas.save();
StaticLayout sl = new StaticLayout("" + user_text, tp, originalBitmap.getWidth(), Layout.Alignment.ALIGN_NORMAL, 1.0f, 0.0f, false);
sl.draw(canvas);
return image;
}
ठीक है, मैं अपने कोड को नवीनीकृत किया है, लेकिन जब मैं छवि कुछ भी नहीं पर आकर्षित करने के लिए कोशिश बिल्कुल होता है, मुझे पता नहीं क्यों है या तो:
public Bitmap createImage(String user_text) {
// canvas object with bitmap image as constructor
Canvas canvas = new Canvas(image);
TextPaint tp = new TextPaint();
tp.setColor(Color.RED);
tp.setTextSize(50);
tp.setTextAlign(Align.CENTER);
tp.setAntiAlias(true);
StaticLayout sl = new StaticLayout("" + user_text, tp,
canvas.getWidth(), Layout.Alignment.ALIGN_NORMAL, 1, 0, false);
canvas.translate(100, 100);
sl.draw(canvas);
return image;
}
क्या स्टेटिकलेआउट का उपयोग कैनवास पर आकर्षित करने के लिए नहीं किया जाना चाहिए?
'StaticLayout's का एक अच्छा उपयोग उदाहरण के लिए इस अन्य जवाब पर एक नज़र डालें: //stackoverflow.com/a/8369690/293280 –
संभावित डुप्लिकेट [कैनवास में बहु-पंक्ति पाठ ड्रा करें] (http://stackoverflow.com/questions/6756975/draw-multi-line-text-to-canvas) –