Ich habe eine TextView in meiner App innerhalb der ich Text und Grafiken anzeigen.Android Scrollbare TextView Border
Sobald der Inhalt für die Einschränkungen der textView zu groß wird, scrollt er.
Alles funktioniert perfekt, aber ich möchte einen Rahmen um ihn hinzufügen. Ich habe hier auf SO und anderswo im Internet geschaut und die einzigen Lösungen, die ich finden kann, sind das Hinzufügen eines Rahmens um den Hintergrund und das Anwenden des Hintergrunds auf das TextView. Das ist großartig, aber wenn wir bewegen, wird der Inhalt offensichtlich über die Grenze wie so angezeigt:
Jetzt offensichtlich, ich weiß warum dies geschieht, (weil die Grenze einfach ein Teil ist vom Hintergrund), aber ich weiß nicht, wie man die Grenze über den Inhalt bringt.
Das einzige XML, das ich habe, ist die Hintergrundform, alles andere wird programmatisch gemacht, also suche ich nach einer Lösung, die auf meine Situation angewendet werden kann.
XML
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="rectangle">
<solid android:color="#ffeeeeee"/>
<stroke
android:width="15dp"
android:color="#000000"
/>
</shape>
</item>
</selector>
Java-Code (Klasse erweitert Textview)
textLayout = new RelativeLayout(context);
RelativeLayout.LayoutParams textParams = new RelativeLayout.LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.MATCH_PARENT);
textParams.addRule(RelativeLayout.CENTER_HORIZONTAL);
setTextColor(Color.BLACK);
setGravity(Gravity.CENTER_HORIZONTAL);
setTextSize(size);
setMovementMethod(new ScrollingMovementMethod());
setBackgroundResource(R.drawable.textbg);
textLayout.setPadding(xPadding, yPadding, xPadding, yPadding);
Bitmap testPic= BitmapFactory.decodeResource(getResources(), R.drawable.pic1);
Bitmap testPic2= BitmapFactory.decodeResource(getResources(), R.drawable.pic2);
SpannableStringBuilder builder = new SpannableStringBuilder();
builder.append(Html.fromHtml(someText)).append(" ");
builder.setSpan(new ImageSpan(context, testPic),
builder.length() - 1, builder.length(), 0);
builder.append(Html.fromHtml(someMoreText)).append(" ");
builder.setSpan(new ImageSpan(context, testPic2),
builder.length() - 1, builder.length(), 0);
legen Sie eine Auffüllung in Ihrem benutzerdefinierten 'TextView', sollte es helfen – pskink
Danke @pskink, ich kann nicht glauben, dass ich das verpasst habe. Wenn du das als Antwort zurücklassen willst, werde ich es gerne annehmen. – Zippy
sehe meine Antwort, aber ehrlich gesagt die neueste ** EDIT: ** enthält die einfachste Lösung – pskink