Button click --> visa bild?

Diskussion i 'Frågor, support och diskussion' startad av alexEn, 12 sept 2010.

  1. alexEn

    alexEn Kid Droid Medlem

    Blev medlem:
    11 aug 2010
    Inlägg:
    59
    Mottagna gillanden:
    0

    MINA ENHETER

    Är väldigt ny på det här med Android programmering, och undrar en liten sak.

    Om vi säger att jag har en "button" som, när jag klickar på den ska visa en bild jag har lagt i res/drawable/bild.jpg.. Hur gör jag?

    Jag har kollat i timmar på olika guider (utube, och skrivna), men i slutet blir när jag är klar med appen som visas i guiden, fattar jag egentligen vad jag gjort..?

    Om jag har förstått allting rätt så ska man först fixa till allting i main.xml'en, sedan definiera te.x. en "button" till vad den ska göra.. aja, hoppas ni förstår.
     
  2. sockan

    sockan Youth Droid Medlem

    Blev medlem:
    25 maj 2009
    Inlägg:
    230
    Mottagna gillanden:
    12

    MINA ENHETER

    Har du tidigare programmerat något?


    Din main kan typ se ut på följande sätt
    PHP:
    ... inom en linearlayout eller något

    <ImageView 
            android
    :id="@+id/image"
        
    android:layout_width="fill_parent" 
        
    android:layout_height="wrap_content" 
        
    android:layout_weight="1" 
    />
    <
    Button
        android
    :id="@+id/button"
        
    android:layout_width="wrap_content" 
        
    android:layout_height="wrap_content"  
            
    android:text="Klicka här"

    />

    ...



    sedan i din Activity


    PHP:
    ...


    ImageView iv;
    Button btn;

        @
    Override
        
    public void onCreate(Bundle savedInstanceState) {
            
    super.onCreate(savedInstanceState);
            
    // setContentView måste användas innan du pekar mot knapp eller annat. 
            
    setContentView(R.layout.main); // pekar mot layout filen xml res/layout/main.xml
            
    iv = (ImageView)this.findViewById(R.id.image); //<--- Pekar mot image i XML android:id="@+id/image"
            
    btn = (Button)this.findViewById(R.id.button); //<--- Pekar mot button i XML android:id="@+id/button"

            
    btn.setOnClickListener(new OnClickListener(){ // Lyssnar efter "Klick"

                    
    @Override
                    
    public void onClick(View v) { /// Detta händer när du klickar
                        
    iv.setImageResource (R.drawable.bild); // bild är själva filnamnet. Du skall inte skriva .jpg ex R.drawable.bild.jpg 
                    
    }

            });
        }

    ...

    Har inte testat utan skrev från minnet. Men borde fungera

    R står för resources och du anger då sökvägen till resourcen du vill använda/peka på. ex R.drawable.bild

    R -> res/
    .
    drawable -> res/drawable/
    .
    bild -> res/drawable/bild.jpg
     
    Last edited: 12 sept 2010
  3. alexEn

    alexEn Kid Droid Medlem

    Blev medlem:
    11 aug 2010
    Inlägg:
    59
    Mottagna gillanden:
    0

    MINA ENHETER

    Tack så otroligt mycket, sockan! :)
    Börjar förstå hur allt funkar nu.


    Testade att köra min app i en emulator, och när jag tryckte på min "button", så hamnade bilden under min "button" liksom - hur får jag bilden att vara över hela skärmen?
    eller är det bara för bilden kan vara i fel storlek?
     
  4. alexEn

    alexEn Kid Droid Medlem

    Blev medlem:
    11 aug 2010
    Inlägg:
    59
    Mottagna gillanden:
    0

    MINA ENHETER

    Har försökt i 3 timmar med en ny app nu - ett schema för mina lektioner (går på gymnasiet).

    UI'n ser snygg och prydlig ut. Har 5 buttons;
    måndag, tisdag, onsdag etc.

    Och när jag trycker på var och en vill jag komma till en ny "screen" där jag ser dagens schema, te.x.;
    Lektion 1: 9:00 - Engelska - Sal 45
    Lektion 2...


    Är det svårt att få knappen att skicka en till en ny sida, eller finns det något enklare sätt?
     
  5. ozp

    ozp Teen Droid Medlem

    Blev medlem:
    6 maj 2010
    Inlägg:
    250
    Mottagna gillanden:
    31

    MINA ENHETER

    Att öppna en ny sida är jättelätt. Skapa en ny activity och lägg till den i manifestet. Sen kör du bara startActivity(new Intent(this, Klassnamn.class)); in knappens onClick-metod.
     
  6. youheardit

    youheardit Infant Droid Medlem

    Blev medlem:
    15 sept 2010
    Inlägg:
    14
    Mottagna gillanden:
    0

    MINA ENHETER

    Varför inte bygga det via TabActivity och TabHost? mycket bättre än knappar.
     
  7. alexEn

    alexEn Kid Droid Medlem

    Blev medlem:
    11 aug 2010
    Inlägg:
    59
    Mottagna gillanden:
    0

    MINA ENHETER

    Förklara mer? :)
     
  8. youheardit

    youheardit Infant Droid Medlem

    Blev medlem:
    15 sept 2010
    Inlägg:
    14
    Mottagna gillanden:
    0

    MINA ENHETER

  9. teodor

    teodor Youth Droid Medlem

    Blev medlem:
    25 maj 2010
    Inlägg:
    130
    Mottagna gillanden:
    3

    MINA ENHETER

    *Tar upp en gammal tråd*

    Om man följer guiden för TabHost kan man inte se hur det kommer se ut i utvecklingsvyn för main.xml (i eclipse)
    Finns det någon lösning för detta?
    Layoutvyn säger bara "NullPointerException" =/
     
  10. Zooklubba

    Zooklubba Android Medlem

    Blev medlem:
    10 jul 2010
    Inlägg:
    6 448
    Mottagna gillanden:
    2 199

    MINA ENHETER

    Kan tyvärr inte svara på din fråga. Men däremot ge dig ett bra tips, kolla inte hur xmlen kommer att se ut i Eclipse. Det är ganska välkänt att den inte alltid stämmer överens med verkligheten. Jag rör den aldrig utan tittar bara på koden då den de få gånger jag har testat inte haft en siffra rätt.
    Stäng bara inte ner emulatorn eller kör via mobiltelefon (via adb då) så går det ändå kalasfort.