Autore Topic: Inserire una TextView in un riquadro  (Letto 193 volte)

Offline ValerioAdo

  • Utente normale
  • ***
  • Post: 323
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Huawei Ascend g525
  • Sistema operativo:
    windows 8.1
Inserire una TextView in un riquadro
« il: 13 Novembre 2015, 11:15:04 CET »
0
Salve a tutti!

Il mio problema è un poco complicato, la mia applicazione ha una immagine di sfondo (non simmetrica), questa immagine comprende un box rettangolare in cui io dovrò inserire una textView che conterra una somma che dovrà essere al centro del box, non avendo riferimenti a cui potermi agganciare ho calcolato il margin in cui la textView dovrà essere, siccome non tutti gli schermi sono uguali ho calcolato la percentuale esatta che sarà inserita nei margin.

E qui vieni il mio problema.... se emulo un 480x800 ho la textView ad una certa altezza, se invece la emulo su un 1080x1920 la ho leggermente più in alto rispetto al 480x800 (di pochi pixel).

Quello che vorrei sapere è se la densita di un device influenza la sua posizione (margin) e se si come

Vi lascio il codice che ho usato per settare i margin della textView:
Codice (Java): [Seleziona]
  TextView points=(TextView) findViewById(R.id.Points);

        DisplayMetrics displaymetrics = new DisplayMetrics();
        getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);

        Display display = getWindowManager().getDefaultDisplay();
        DisplayMetrics metrics = getResources().getDisplayMetrics();
        Point size = new Point();
        display.getSize(size);
        int screenWidth = size.x; // int screenWidth = display.getWidth(); on API < 13
        int screenHeight = size.y; // int screenHeight = display.getHeight(); on API <13

        int densityDpi = (int)(metrics.density * 160f);

        Toast.makeText(this, ""+densityDpi, Toast.LENGTH_LONG).show();

        RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(Math.round(0.5F * screenWidth), Math.round(0.1F * screenHeight)); // This should set the width and height of the TextView
        lp.setMargins(Math.round(0.4625F * screenWidth), Math.round(0.32375F * screenHeight), 0, 0); // This serves as the settings for the left and top position

        points.setLayoutParams(lp);

        points.setText(TotPoints);

Grazie mille in anticipo!