Autore Topic: cambiare colore sfondo activity  (Letto 6955 volte)

Offline manu2424

  • Nuovo arrivato
  • *
  • Post: 38
  • Respect: 0
    • Mostra profilo
cambiare colore sfondo activity
« il: 28 Febbraio 2013, 20:28:26 CET »
0
Salve, sono un ragazzo che si diletta alla programmazione java per android.

in un mio programmino ho creato varie attività..
siccome java mette come sfondo standard il colore bianco , vorrei sapere come mettere lo sfondo nero. Ho provato a leggere in tutti i modi su internet ma non ne arrivo a capo.  Vi posto il mio codice dell'attività interessata:
Codice (Java): [Seleziona]
package com.example.calcoliastronomici;



import android.os.Bundle;
import android.app.Activity;
import android.graphics.Color;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.TextView;
public class CalcoliAstronomici extends Activity {
        public TextView campoapparente;
        public EditText editcampo;
        public Button calcola;
        public TextView focaletelescopio;
        public EditText editfocale;
        public TextView focaleoculare;
        public EditText editfocaleoculare;
        public TextView risultato;
       
         @Override
        protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main5);
       


                 //campo apparente
                campoapparente = new TextView(this);
                campoapparente.setText("Inserisci il campo apparente dell'oculare : ");
                editcampo = new EditText(this);
                //focale telescopio
                focaletelescopio = new TextView(this);
                focaletelescopio.setText("Inserisci la focale del telescopio(mm)");
                editfocale = new EditText(this);
                //focale oculare
                focaleoculare = new TextView(this);
                focaleoculare.setText("Inserisci la focale dell'oculare (mm): ");
                editfocaleoculare = new EditText(this);
                //bottone calcola
                calcola = new Button(this);
                calcola.setText("Calcola il campo reale inquadrato dall'oculare");
                 calcola.setOnClickListener(new OnClickListener() {
                        void clickSubottonecalcola() {
                                double FT, CA, FO, I, CR;
                                String temp;
                                temp = editfocale.getText().toString();
                                FT = Double.valueOf(temp);
                                temp = editfocaleoculare.getText().toString();
                                FO = Double.valueOf(temp);
                                temp = editcampo.getText().toString();
                                CA = Double.valueOf(temp);
                                I = FT/FO;
                                CR = (CA/I);
                                risultato.setText("Il campo reale dell'oculare è (in deg): " + CR);
                               
                        }
                        public void onClick(View v) { clickSubottonecalcola();
        }
                 
                 });
                 //output risultato
                 risultato = new TextView(this);
                    risultato.setTextColor(Color.RED);
                    LinearLayout layoutfocale = new LinearLayout(this);
                    layoutfocale.setOrientation(LinearLayout.HORIZONTAL);
                    layoutfocale.addView(focaletelescopio);
                    layoutfocale.addView(editfocale);
                    LinearLayout layoutoculare = new LinearLayout(this);
                    layoutoculare.setOrientation(LinearLayout.HORIZONTAL);
                    layoutoculare.addView(focaleoculare);
                    layoutoculare.addView(editfocaleoculare);
                    LinearLayout layoutapparente = new LinearLayout(this);
                    layoutapparente.setOrientation(LinearLayout.HORIZONTAL);
                    layoutapparente.addView(campoapparente);
                    layoutapparente.addView(editcampo);
                     LinearLayout layout = new LinearLayout(this);
                     layout.setOrientation(LinearLayout.VERTICAL);
                     layout.addView(layoutfocale);
                     layout.addView(layoutoculare);
                     layout.addView(layoutapparente);
                     layout.addView(calcola);
                     layout.addView(risultato);
                     setContentView(layout);
                     
                     

        }
       

        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
                // Inflate the menu; this adds items to the action bar if it is present.
                getMenuInflater().inflate(R.menu.calcoli_astronomici, menu);
                return true;
        }

}


il mio file di layout è activity_main5.xml

con il seguente codice dentro:
Codice (XML): [Seleziona]
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:tools="http://schemas.android.com/tools"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:paddingBottom="@dimen/activity_vertical_margin"
   android:paddingLeft="@dimen/activity_horizontal_margin"
   android:paddingRight="@dimen/activity_horizontal_margin"
   android:paddingTop="@dimen/activity_vertical_margin"
   tools:context=".Main5Activity"
 >

    <TextView
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:text="@string/hello_world"
       android:background="@drawable/sfondo" />

</RelativeLayout>



Quindi come potrei venirne a capo? la mia prima intenzione era mettere un' immagine di sfondo ma non riesco proprio. Quindi vediamo se riesco a mettere quanto meno un altro colore come sfondo (black)...

Aspetto vostri consigli . graziee

Offline elfo83

  • Utente normale
  • ***
  • Post: 287
  • Respect: +23
    • Mostra profilo
  • Sistema operativo:
    Mac OS 10.8.2
Re:cambiare colore sfondo activity
« Risposta #1 il: 28 Febbraio 2013, 23:30:39 CET »
+1
Basta che assegni al tuo RelativeLayout radice un' ID e cambi sfondo o colore da codice...
Codice (XML): [Seleziona]
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:tools="http://schemas.android.com/tools"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:paddingBottom="@dimen/activity_vertical_margin"
  android:paddingLeft="@dimen/activity_horizontal_margin"
  android:paddingRight="@dimen/activity_horizontal_margin"
  android:paddingTop="@dimen/activity_vertical_margin"
  tools:context=".Main5Activity"
android:id="@+id/root"
>

e dal codice..
Codice (Java): [Seleziona]
RelativeLayout layout = (RelativeLayout)findViewById(r.id.root)
                  layout.setBackgroundColor(getResources().getColor(r.Color.ColoreCheHaiDefinito));
oppure
                 layout.setBackgroundResource(r.drawable.tuaImmagine);

Offline manu2424

  • Nuovo arrivato
  • *
  • Post: 38
  • Respect: 0
    • Mostra profilo
Re:cambiare colore sfondo activity
« Risposta #2 il: 01 Marzo 2013, 13:38:59 CET »
0
perfetto ora funziona lo sfondo. Ma come posso dare i bordi neri ai bottoni? (e anche separarli un po?)
inoltre come faccio a centrarli?
vi allego uno screen fatto all'app...


Offline elfo83

  • Utente normale
  • ***
  • Post: 287
  • Respect: +23
    • Mostra profilo
  • Sistema operativo:
    Mac OS 10.8.2
Re:cambiare colore sfondo activity
« Risposta #3 il: 01 Marzo 2013, 16:44:38 CET »
0
Per i bordi dei bottoni, colore, forma etc leggi questa guida
http://developer.android.com/guide/topics/resources/drawable-resource.html#Shape

per centrarli basta aggiungere l'attributo android:layout_centerHorizontal="true" al contenitore che contiene i bottoni, nel tuo caso il RelativeLayout. Per separarli devi utilizzare gli attributi xml..leggi questa guida:
http://developer.android.com/guide/topics/ui/layout/relative.html

Offline manu2424

  • Nuovo arrivato
  • *
  • Post: 38
  • Respect: 0
    • Mostra profilo
Re:cambiare colore sfondo activity
« Risposta #4 il: 01 Marzo 2013, 17:08:30 CET »
0
ma in che file devo inserire             android:layout_centerHorizontal="true"  ?
ho provato in tutti i file xml per sicurezza ma non funziona da nessuna parte.
il mio Android manifest è questo:
Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
   package="com.example.calcoliastronomici"
   android:versionCode="1"
   android:versionName="1.0" >

    <uses-sdk
       android:minSdkVersion="8"
       android:targetSdkVersion="9" />


    <application
       android:allowBackup="true"
       android:background="#ffffff"
       android:icon="@drawable/ic_launcher"
       android:inputType="number"
       android:label="@string/app_name"
       android:theme="@style/AppTheme" >
        <activity
           android:name="com.example.calcoliastronomici.MainActivity"
           android:inputType="number"
           android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
           android:name="com.example.calcoliastronomici.Main5Activity"
           android:label="@string/title_activity_main5"
           android:layout_centerHorizontal="true" >
        </activity>
        <activity
           android:name="com.example.calcoliastronomici.CalcoliAstronomici"
           android:label="@string/title_activity_calcoli_astronomici"
           android:layout_centerHorizontal="true" >

        </activity>
        <activity
           android:name="com.example.calcoliastronomici.CCD"
           android:label="@string/title_activity_ccd"
           android:layout_centerHorizontal="true" >
     
           
        </activity>
    </application>

</manifest>


l'altro è quello che vi ho postato prima ( activity_main5.xml)

Offline elfo83

  • Utente normale
  • ***
  • Post: 287
  • Respect: +23
    • Mostra profilo
  • Sistema operativo:
    Mac OS 10.8.2
Re:cambiare colore sfondo activity
« Risposta #5 il: 01 Marzo 2013, 17:11:43 CET »
+1
Secondo me prima di andare a scrivere codice dovresti leggere un libro o guide Android. Non devi dichiarare il tuo layout nel manifest, devi invece creare un nuovo file xml in cui descrivi il layout per la tua activity.  android:layout_centerHorizontal="true" devi inserirlo tra gli altri attributi del tuo RelativeLayout con id="@id/root"

Offline manu2424

  • Nuovo arrivato
  • *
  • Post: 38
  • Respect: 0
    • Mostra profilo
Re:cambiare colore sfondo activity
« Risposta #6 il: 01 Marzo 2013, 18:13:00 CET »
0
Perfetto ho creato tutto il nuovo file xml con la grafica appropiata.
Ora però se clicco sui bottoni  quest'ultimi non eseguono poi la loro funzione (prima funzionava tutto)

Offline elfo83

  • Utente normale
  • ***
  • Post: 287
  • Respect: +23
    • Mostra profilo
  • Sistema operativo:
    Mac OS 10.8.2
Re:cambiare colore sfondo activity
« Risposta #7 il: 01 Marzo 2013, 18:37:31 CET »
0
pubblica qui il tuo file .java e il tuo layout .xml e vediamo cosa stai sbagliando

Offline manu2424

  • Nuovo arrivato
  • *
  • Post: 38
  • Respect: 0
    • Mostra profilo
Re:cambiare colore sfondo activity
« Risposta #8 il: 01 Marzo 2013, 18:50:05 CET »
0
allora prima di darvi il codice vi voglio dire che quando gestivo il layout da dentro il sorgente java tutto andava bene.. quando ho incominciato ad usare il file xml per la grafica i bottoni non mi funzionano piu  perchè mi si riportano i bottoni dichiarati in xml e non quelli nel file java

Codice (Java): [Seleziona]
package com.example.calcoliastronomici;

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.graphics.Color;
import android.view.View;
import android.view.View.OnClickListener;



public class MainActivity extends Activity {
//Bottone campo apparente e reale
        public Button bottonecamporeale;
    Intent intent;
public Button bottoneccd;
Intent intent1;

public TextView spazio;
         
        //DICHIARAZIONI
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.layoutprimapagina);

       

      //BOTTONI
        bottonecamporeale = new Button(this);
        bottonecamporeale.setText("Campo  inquadrato reale degli oculari");
        bottonecamporeale.setBackgroundColor(Color.WHITE);
       


        intent=new Intent(getApplicationContext(), CalcoliAstronomici.class);

       
        //GESTIONE BOTTONE CAMPO REALE
       
        bottonecamporeale.setOnClickListener(new OnClickListener() {  


                 public void onClick(View v) {
                         startActivity(intent);        

                 } });
       
         
        bottoneccd = new Button(this);
       
        bottoneccd.setText("Calcola il campo inqaudrato dal CCD");
        bottoneccd.setBackgroundColor(Color.WHITE);
        intent1=new Intent(getApplicationContext(), CCD.class);
       
        bottoneccd.setOnClickListener(new OnClickListener() {  


         public void onClick(View v) {
                 startActivity(intent1);        

         } });
        //GESTIONE LAYOUT
 
 



    }
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
   
}

codice layoutprimapagina.xml

Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<AbsoluteLayout
        android:id="@+id/widget0"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:background="@drawable/sfondo">
<RelativeLayout
        android:id="@+id/widget38"
        android:layout_width="224dp"
        android:layout_height="50dp"
        android:layout_x="50dp"
        android:layout_y="31dp">
<Button
        android:id="@+id/bottonecamporeale"
        android:layout_width="209dp"
        android:layout_height="wrap_content"
        android:text="Campo reale degli oculari"
        android:layout_centerVertical="true"
        android:layout_centerHorizontal="true" />
</RelativeLayout>
<RelativeLayout
        android:id="@+id/widget40"
        android:layout_width="225dp"
        android:layout_height="41dp"
        android:layout_x="50dp"
        android:layout_y="92dp">
<Button
        android:id="@+id/bottoneccd"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Campo inquadrato dal CCD"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true" />
</RelativeLayout>
</AbsoluteLayout>

Offline elfo83

  • Utente normale
  • ***
  • Post: 287
  • Respect: +23
    • Mostra profilo
  • Sistema operativo:
    Mac OS 10.8.2
Re:cambiare colore sfondo activity
« Risposta #9 il: 01 Marzo 2013, 18:57:31 CET »
+1
Certo, perchè tu crei nel codice nuovi bottoni facendo  bottonecamporeale = new Button(this);
Devi andare a ripescare i bottoni che hai dichiarato nel file xml in questo modo
Button btw = (Button)findViewById(r.id.bottonecamporeale);

ora sul bottone btw puoi fare quello che vuoi.

Consiglio: non usare gli AbsoluteLayout

Offline manu2424

  • Nuovo arrivato
  • *
  • Post: 38
  • Respect: 0
    • Mostra profilo
Re:cambiare colore sfondo activity
« Risposta #10 il: 01 Marzo 2013, 19:00:32 CET »
0
perfetto.. scusa se do un po fastidio però.. come mai ora dopo che ho fatto quel codice i bottoni sembrano essere piu  bianchi (poco fa erano grigi e carini) e sopratutto piu sproporzionati ?

Offline elfo83

  • Utente normale
  • ***
  • Post: 287
  • Respect: +23
    • Mostra profilo
  • Sistema operativo:
    Mac OS 10.8.2
Re:cambiare colore sfondo activity
« Risposta #11 il: 01 Marzo 2013, 19:03:11 CET »
+1
:) Non preoccuparti. Il colore che vedi è bianco perchè tu nel codice hai settato il colore bianco in questo modo:

        bottonecamporeale.setBackgroundColor(Color.WHITE);

Prima vedevi i bottoni "grigi e carini" perché se non specifichi un colore nè nel codice né nel file .xml, android di default usa quel tipo di colore per i bottoni.

Offline manu2424

  • Nuovo arrivato
  • *
  • Post: 38
  • Respect: 0
    • Mostra profilo
Re:cambiare colore sfondo activity
« Risposta #12 il: 01 Marzo 2013, 20:24:30 CET »
0
un ultia domanda che forse non c'entra molto con il topic...

ho un calcolo il cui risultato è per esempio 4,44566764
come potrei fare per far uscire solo 4,44 ? e se era per esempio 4,446 farlo uscire 4,45 ?

vi allego una parte di codice.. ho provato ad usare math.round ma arrotonda tutto per eccesso in cifre intere..
Codice (Java): [Seleziona]
void clickSubottonecalcola() {
                double AS, LS, FT, RIS, RIS1,ciao, ciao1;
                String temp;
                temp = editfocale.getText().toString();
                FT= Double.valueOf(temp);
                temp = editlarghezza.getText().toString();
                LS = Double.valueOf(temp);
                temp = editaltezza.getText().toString();
                AS = Double.valueOf(temp);
                ciao = LS*3438/FT;
                ciao1 = AS*3438/FT;
                RIS = Math.round(ciao);
                RIS1 = Math.round(ciao1);
                ris1.setText("campo in arcmin : " + RIS);
                ris2.setText("campo in arcmin : " +RIS1 );
        }

non fate caso se il codice è tagliato ecc.. vi ho postato solo la parte che riguarda il calcolo..
grazie :)

Offline elfo83

  • Utente normale
  • ***
  • Post: 287
  • Respect: +23
    • Mostra profilo
  • Sistema operativo:
    Mac OS 10.8.2
Re:cambiare colore sfondo activity
« Risposta #13 il: 01 Marzo 2013, 20:48:54 CET »
+1
Codice (Java): [Seleziona]
String.format("$%,.2f",floatDiCuiVuoiLeggereSoloLePrime2CifreDopoLaVirgola)La risposta alla seconda domanda la trovi qui:
http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Formatter.html

Offline manu2424

  • Nuovo arrivato
  • *
  • Post: 38
  • Respect: 0
    • Mostra profilo
Re:cambiare colore sfondo activity
« Risposta #14 il: 01 Marzo 2013, 21:58:46 CET »
0
Eccomi di nuovo qui ... come potete vedere dall'immagine sotto i bottoni  hanno quasi raggiunto il limite dello schermo. come potrei rendere quella schermata con lo scroll bar? in modo che andando sotto posso continuare a mettere bottoni?
« Ultima modifica: 03 Marzo 2013, 17:35:48 CET da manu2424, Reason: Merged DoublePost »