Chcę, aby aplikacja, podobnie jak ekran powitalny systemu Android. Dynamicznie dodaje obrazy do wierszy tableLayout. Mam zdefiniowane tylko tableLayout w pliku xml, a pozostały kod jest w java. Dodałem obrazy z powodzeniem, ale nie otrzymuję pomocy przy ustawianiu tekstu tego obrazu (chcę wyświetlać tekst pod obrazem), a obrazem jest specjalne obicie. Jak to zrobić? Z góry dziękuję.Dodaj tekst do obrazu w Androidzie programowo
Odpowiedz
Co można zrobić, to zamiast położyć TextView w nakładce do ImageView użyciu RelativeLayout :)
Tak. Zrobiłem to teraz. Udało mi się dodać FrameLayout w wierszach tabeli i wszystko działało dobrze. Dziękuję wszystkim. – dka72
To najlepsze opcje. Łatwe, lekkie i dobre osiągi – StErMi
Badass idea -.- +1 – khandelwaldeval
Poniższa funkcja wpisywania tekstu na obrazy:
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) ;
}
Jak dodać pogrubiony tekst do bitmapy? czy są jakieś opcje? plz poprowadź mnie. –
Twoja metoda zadziałała dla mnie, z wyjątkiem rozmiaru tekstu. Musiałem ustawić rozmiar tekstu (x5), aby twoja wartość była czytelna w moim drawable ikony. może to być spowodowane skalą konwersji dla mojego urządzenia. dzięki! – droideckar
co tu jest mContext? –
I m powodzeniem wdrożone takie problem z dodawaniem tekstu na obrazie. Wystarczy spojrzeć na następujący kod. Najpierw wybierz jeden widok jako Układ względny w tym układzie, a następnie ImageView po tym EditText i po tym przycisku. Podaj każdy identyfikator. Napisz poniżej funkcję 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;
}
i po kliknięciu przycisku.
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);
}
Enjoy ...
dzięki za to miłe rozwiązanie. możesz pomóc z linią kodu 'Bitmap bitmap = loadBitmapFromView (relativeLayout)' Nie jestem w stanie uzyskać 'referencji' do' relativeLayout' ... jeśli podam 'ID'' RelativeLayout', którego nie akceptuje to. Czy możesz wyjaśnić trochę. Dzięki –
Przekaż widok nadrzędny, W moim przypadku jest to układ względny. –
cóż .. nie jestem w stanie tego sobie wyobrazić. czy mógłbyś wyjaśnić trochę więcej za pomocą przykładowego kodu ... dzięki! –
- 1. Dodaj tekst do UIImage
- 2. Ustaw tekst podkreślony na TextView w Androidzie programowo
- 3. Programowo programowo zapisuj tekst do pliku audio.
- 4. Programowo dodaj obramowanie do LinearLayout
- 5. Ulepsz tekst w Androidzie
- 6. Dodaj GridView do listy ViewView w Androidzie
- 7. Dodaj audio do wideo w Androidzie
- 8. Duży tekst w Androidzie
- 9. Dodaj obramowanie do obrazu w kółku
- 10. Dodaj blask do obrazu (Aktor) w LibGDX
- 11. Dodaj znacznik do obrazu w javascript?
- 12. Obracanie obrazu w Androidzie
- 13. Dodaj UIScrollView w UIView programowo
- 14. Generowanie tekstu edycji programowo w Androidzie
- 15. Dodaj tekst ggplot
- 16. jak zmniejszyć duży rozmiar obrazu do rozmiaru miniatur w Androidzie
- 17. Mikser audio w Androidzie programowo
- 18. Programowo dodaj atrybut do metody lub parametru
- 19. Orientacja aparatu/obrazu w Androidzie
- 20. Dodaj prosty tekst do panelu sterowania
- 21. Tekst UISegmentedControl programowo
- 22. Jak skopiować plik obrazu z galerii do innego folderu programowo w Androidzie
- 23. Przycisk Rozmiar obrazu w Androidzie
- 24. dodaj znak wodny małego obrazu do dużego obrazu opencv4android
- 25. Dodaj "Odstępy w pionie" programowo w swift
- 26. Pozycjonowanie obrazu tekst alternatywny
- 27. Programowo (C#) przekonwertować Excel do obrazu
- 28. Dodaj programowo szablon kodu Java
- 29. Animacja do powiększania i pomniejszania w Androidzie do podglądu obrazu
- 30. JavaScript, programowo dodaj zdarzenie onclick
Proponuję użyć GridView. –