我想創建一個應用程序,就像打開android.I屏幕一樣,我將動態添加圖像到tableLayout的行中。我只在xml文件中定義了tableLayout,剩下的代碼是用java編寫的。我已成功添加圖像,但我沒有得到任何幫助設置該圖像的文本(我想顯示圖像下的文本)和圖像是一個特定的填充。如何做?提前致謝。以編程方式在android中將文本添加到圖像
回答
什麼可以代替做的是使用的RelativeLayout把一個TextView在覆蓋到的ImageView :)
是的,我已經做到了。我設法在Table行中添加了FrameLayout,它工作得很好。謝謝大家。 – dka72
這是最好的選擇。輕鬆,輕便和良好的性能 – StErMi
巴達思的想法-.- +1 – khandelwaldeval
使用下面的函數寫文字上的圖像:
private BitmapDrawable writeTextOnDrawable(int drawableId, String text) {
Bitmap bm = BitmapFactory.decodeResource(getResources(), drawableId)
.copy(Bitmap.Config.ARGB_8888, true);
Typeface tf = Typeface.create("Helvetica", Typeface.BOLD);
Paint paint = new Paint();
paint.setStyle(Style.FILL);
paint.setColor(Color.WHITE);
paint.setTypeface(tf);
paint.setTextAlign(Align.CENTER);
paint.setTextSize(convertToPixels(mContext, 11));
Rect textRect = new Rect();
paint.getTextBounds(text, 0, text.length(), textRect);
Canvas canvas = new Canvas(bm);
//If the text is bigger than the canvas , reduce the font size
if(textRect.width() >= (canvas.getWidth() - 4)) //the padding on either sides is considered as 4, so as to appropriately fit in the text
paint.setTextSize(convertToPixels(mContext, 7)); //Scaling needs to be used for different dpi's
//Calculate the positions
int xPos = (canvas.getWidth()/2) - 2; //-2 is for regulating the x position offset
//"- ((paint.descent() + paint.ascent())/2)" is the distance from the baseline to the center.
int yPos = (int) ((canvas.getHeight()/2) - ((paint.descent() + paint.ascent())/2)) ;
canvas.drawText(text, xPos, yPos, paint);
return new BitmapDrawable(getResources(), bm);
}
public static int convertToPixels(Context context, int nDP)
{
final float conversionScale = context.getResources().getDisplayMetrics().density;
return (int) ((nDP * conversionScale) + 0.5f) ;
}
如何在位圖上添加粗體文本?有沒有選擇? PLZ指導我。 –
除了文字大小之外,您的方法適用於我。我必須將文本大小(x5)設置爲可繪製的圖標中的可讀性。這可能是由於我的設備的轉換比例。謝謝! – droideckar
我在這裏的mContext是什麼? –
餘米成功地實施這樣的在圖像上添加文字的問題。只要看看下面的代碼。首先將一個視圖作爲該佈局中的相對佈局,在該EditText之後以及該按鈕之後使用ImageView。給每一個ID。在下面寫一個loadBitmapFromView函數。
public Bitmap loadBitmapFromView(View v) {
Bitmap b = Bitmap.createBitmap(v.getWidth(), v.getHeight(), Config.ARGB_8888);
Canvas c = new Canvas(b);
v.layout(v.getLeft(), v.getTop(), v.getRight(), v.getBottom());
v.draw(c);
return b;
}
和按鈕的點擊。
Bitmap bitmap = loadBitmapFromView(relativeLayout);
File dir = new File(Environment.getExternalStorageDirectory().getAbsolutePath(), "folderName");
if (!dir.exists())
dir.mkdirs();
File file = new File(dir, "capture.jpg");
try {
FileOutputStream fos = new FileOutputStream(file);
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, fos);
imageView.setImageBitmap(bitmap);
} catch (Exception e) {
Log.e("ExpressionEditImageActivity", "Error, " + e);
}
享受...
感謝這個不錯的解決方案。你可以幫助請與代碼行'位圖bitmap = loadBitmapFromView(relativeLayout)'我無法獲得'reference'到'relativeLayout' ...如果我給''RelativeLayout' ID'它不接受它。請你稍微解釋一下。謝謝 –
傳遞你的父視圖,在我的情況下,它是相對佈局。 –
好..我不能夠想象這一點。可以請你解釋一些示例代碼..謝謝! –
- 1. 如何以編程方式將圖像添加到文本塊?
- 2. 如何以編程方式在android或刷新圖庫中以編程方式將圖像添加到圖庫
- 3. 如何以編程方式將圖像添加到Android PopupMenu()?
- 4. 以編程方式將背景圖像添加到Android seekbar
- 5. 以編程方式將圖像添加到Liferay圖像庫
- 6. 如何以編程方式將圖像添加到資源中?
- 7. 以編程方式在Android中添加圖像WaterMark
- 8. 以編程方式將視圖添加到Android視圖組
- 9. 將替代文本添加到以編程方式創建的圖像
- 10. 以編程方式添加圖像
- 11. UITableViewAutomaticDimension以編程方式添加圖像
- 12. 如何將圖像編程方式添加到Android
- 13. 以編程方式添加圖像,按鈕和文本
- 14. 以文本和圖像編程方式添加LinearLayout
- 15. 以編程方式將圖像添加到Magento產品1.6.1
- 16. 使用ScrollViewer以編程方式將圖像添加到StackPanel
- 17. 以編程方式將圖像添加到Drupal節點
- 18. 以編程方式將圖像添加到Crystall報告
- 19. 以編程方式將圖像添加到StackPanel
- 20. 如何以編程方式將柔焦添加到圖像
- 21. 以編程方式將圖像添加到UINavigationBar
- 22. 以編程方式將模糊圖像背景添加到xib
- 23. 如何以編程方式將圖像添加到Drupal節點?
- 24. Android以編程方式添加文本視圖
- 25. Android:以編程方式添加兩個文本視圖
- 26. 以預編程方式在Android中以編程方式添加視圖
- 27. Android以編程方式將邊距添加到Web視圖
- 28. 以編程方式將視圖添加到RelativeLayout android
- 29. Android - 以編程方式將項目添加到列表視圖
- 30. 如何以編程方式將視圖添加到gridview,android?
我建議你使用GridView控件。 –