Draw TextView ohne Layout?...

  • Antworten:14
nawiat
  • Forum-Beiträge: 11

08.10.2014, 23:28:48 via Website

Hey Leute ^^,

kurz und knapp, kann ich ohne ein Layout ein "TextView" erzeugen und angeben wo es sein soll?

MyActivity.java:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
    WindowManager.LayoutParams.FLAG_FULLSCREEN);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    setContentView(new GameView(this));

}

dort übergebe ich an meine GameView.java "setContentView(new GameView(this));", alles ohne Layout. in der GameView.java möchte ich eine TextView hinzufügen aber das geht iwi alles nicht ohne Layout file :(

kann mir jemand helfen?

MFG
nawiat

Antworten
Andy N.
  • Forum-Beiträge: 22.375

09.10.2014, 06:15:33 via Website

Hallo nawiat,

Ich habe deinen Thread mal in unseren Entwickler-Bereich verschoben, da passt er etwas besser ;)

Viele Grüße,
Andy


OnePlus 3 (Resurrection Remix 5.8.2)
LG G Watch

Regeln | unsere Mods & Admins

Antworten
nawiat
  • Forum-Beiträge: 11

09.10.2014, 09:18:22 via Website

ich danke dir ^^ ich wusste nicht wohin, weil ich noch neu bin :)

Antworten
Fabian Simon
  • Forum-Beiträge: 359

09.10.2014, 13:05:28 via Website

Natürlich geht das du solltest die Halt das GameView irgendwo vorhalten.
Zum Beispielt so(ist nur psydocode)

public cass einActivity extends Activity{
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
    WindowManager.LayoutParams.FLAG_FULLSCREEN);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    setContentView(new GameView(this));
     TextView tv = new TextView();
    tv.setTest("Was auch immer");
 ((GameView)getContentView).settv(tv)
}
}

— geändert am 09.10.2014, 13:05:39

Antworten
nawiat
  • Forum-Beiträge: 11

09.10.2014, 17:02:07 via Website

Bei " ((GameView)getContentView).settv(tv)" bringt er das er getContentView nicht auflösen kann :(

Antworten
nawiat
  • Forum-Beiträge: 11

09.10.2014, 17:11:26 via Website

und wie muss ich dann in meiner GameView class das aufrufen? bei onDraw? :D

Antworten
Gelöschter Account
  • Forum-Beiträge: 2.640

10.10.2014, 07:25:23 via App

Das wird schlecht gehen, weil deine Gameview wahrscheinlich keine Viewgroup ist.
Wie du gesagt hast, mit ondraw lässt sich vieles machen. drawText bspw.

— geändert am 10.10.2014, 07:26:27

Ich sammle gerne Namen in meinem Death Note.

Samsung Galaxy Note 2<3 -> Samsung Galaxy Note 3 <3

Antworten
nawiat
  • Forum-Beiträge: 11

10.10.2014, 09:14:35 via Website

naja onDraw kann ich nicht nehm, weil ich den Text an manchen stellen einfach im TextView ändern möchte. gibt es da keine möglichkeiten?

Antworten
Gelöschter Account
  • Forum-Beiträge: 2.640

11.10.2014, 17:21:43 via App

Ändern wie in einem EditText oder einfach einen anderen Text anzeigen lassen?

— geändert am 11.10.2014, 17:21:54

Ich sammle gerne Namen in meinem Death Note.

Samsung Galaxy Note 2<3 -> Samsung Galaxy Note 3 <3

Antworten
nawiat
  • Forum-Beiträge: 11

13.10.2014, 09:54:04 via Website

vielleicht nochmal genauer:

Ich habe das Problem das ich mein ganzes Spiel ohne Layout programmiere da es für mich besser zu sagen ist wo was hin soll. Das Problem ist das ich auf eine ".java" Classe überweiße. In der .java class möchte ich eine TextView anzeigen lassen an bestimmten Coordinaten ohne Layout file. . Möchte oben links ein Text den ich an manchen stellen im Code bearbeiten kann(Text ändern) Ist dies ohne eine Layout file möglich.

Alles was ich versucht habe benötigt ein Canvas und Context zugleich aber das ist in mein Code nicht möglich.

MFG
nawiat

Antworten
nawiat
  • Forum-Beiträge: 11

14.10.2014, 10:38:07 via Website

Ja das hat geholfen danke ^^ aber wenn ich jetzt das translate nehme um den Text an den unteren Bildschirmrand zu bringen schiebt es alles vom meinen Screen nach unten. Kann ich das Layout in Hintergrund setzen ? ohne das es alles andere beeinflusst ?

Grüße
nawiat

Antworten
Gelöschter Account
  • Forum-Beiträge: 2.640

14.10.2014, 13:17:13 via App

Das Linearlayout im Beispiel durch ein Relativelayout zu ersetzen könnte helfen

Ich sammle gerne Namen in meinem Death Note.

Samsung Galaxy Note 2<3 -> Samsung Galaxy Note 3 <3

Antworten
nawiat
  • Forum-Beiträge: 11

14.10.2014, 13:54:22 via Website

Hilft leider nicht :(

Antworten
nawiat
  • Forum-Beiträge: 11

15.10.2014, 13:11:41 via Website

ich habe diesen code jetzt eingebunden und er geht auch...:

    public void createTextview(Canvas canvas, String text, int x, int y) {
    LinearLayout layout = new LinearLayout(getContext());

    TextView textView = new TextView(getContext());

    textView.setVisibility(View.VISIBLE);
    textView.setText(text);
    layout.addView(textView);

    layout.measure(canvas.getWidth(), canvas.getHeight());
    layout.layout(0, 0, canvas.getWidth(), canvas.getHeight());

    layout.draw(canvas);
}

wenn ich mit canvas.translate(500, 500); den Text verschiebe, schiebt sich alles andere was ich auf mein Canvas malen lasse nach unten. als ob das ne Mauer wäre und alles nur bis dahin geht. Muss ich jetzt alles auf mein Layout malen lassen oder wie kann ich das Layout in Hintergrund bringen das der User nur den Text sieht.

Danke ^^

Antworten