Jetzt kostenlos registrieren. Mitglieder surfen ohne Werbung auf Android-Hilfe.de!
Zurück   Android-Hilfe.de > Android Developer > Android App Entwicklung

Custom Buttons in GridView proportional anpassen

Das Thema "Custom Buttons in GridView proportional anpassen" befindet sich unter Android App Entwicklung auf Android-Hilfe.de.


Antwort

 

Themen-Optionen Ansicht
Alt 07.12.2011, 15:40   #1 (permalink)
Neuer Benutzer

Registriert seit: 22.11.2011
Beiträge: 6
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
Standard Custom Buttons in GridView proportional anpassen

Guten Abend liebe Android-Gemeinde,

ich habe folgendes problem. Nämlich möchte ich Buttons in einen GridView laden, was auch wunderbar funktioniert. Im GridView kann ich ja nun die Breite der Spalten eingeben mit "Column width".

Den Buttons gebe ich immer einen Background mit, welcher ein Selector ist. Dieser Selector enthählt Grafiken für den Button, welche nur proportional skalliert werden dürfen, da diese sonst verzerren.

Wie ist das möglich? Ich hab schon eine Methode zum skallieren von Bildern, aber das funktioniert mit XML Dateien (selector) nicht. =/

Ich möchte letzendlich wenn ich den Button mit dem Selector in den GridView einfüge, und dieser in der Breite gestreckt bzw. gestaucht wird, das dies in der Höhe auch automatisch passiert.

Weiß hier vielleicht jemand was man da machen kann?
phiLue ist offline   Mit Zitat antworten
Alt 07.12.2011, 16:03   #2 (permalink)
Android Guru

Registriert seit: 09.05.2009
Beiträge: 2.389
Abgegebene Danke: 36
Erhielt 307 Danke für 289 Beiträge
Standard AW: Custom Buttons in GridView proportional anpassen

hmm so ganz weiß ich nicht, was dein problem ist, aber ich würde mal in richtung 9patch schauen.

kennst du das?
__________________
App Entwicklung
Latest apps: Media Streamer BETA | DailyCash | MoneyManager ( PRO | HD )
swordi ist offline   Mit Zitat antworten
Alt 07.12.2011, 16:17   #3 (permalink)
Neuer Benutzer

Registriert seit: 22.11.2011
Beiträge: 6
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
Standard AW: Custom Buttons in GridView proportional anpassen

An sich kein schlechter Gedanke, nutz ich sonst auch überall wo es möglich ist und Sinn macht, aber hier geht dies leider nicht.

Sagen wir mein Bild ist jetzt 144x180 Pixel groß mit 240 DPI. Im GridView soll die breite einer Spalte 90 betragen, was auch wunderbar funktioniert. Allerdings wird das Bild nun 90x180 dargestellt, und das ist natürlich dann völlig verzerrt.

Wie ich es im Sourcecode verkleinern kann weiß ich leider nicht, da es sich hier nicht direkt um ein png handelt, sondern um einen Selector(xml), welche die png benutzt.

//Edit:
Letzendlich muss es keine größe von 90sp sein. Schöner wäre es ich könnte einfach sagen pro Reihe 3 Buttons und er würde es anhand der Bildschirmgröße dann skallieren.

Geändert von phiLue (07.12.2011 um 16:36 Uhr)
phiLue ist offline   Mit Zitat antworten
Alt 07.12.2011, 16:44   #4 (permalink)
Android Guru

Registriert seit: 09.05.2009
Beiträge: 2.389
Abgegebene Danke: 36
Erhielt 307 Danke für 289 Beiträge
Standard AW: Custom Buttons in GridView proportional anpassen

naja mit layout weight kannst du das leicht bestimmen
__________________
App Entwicklung
Latest apps: Media Streamer BETA | DailyCash | MoneyManager ( PRO | HD )
swordi ist offline   Mit Zitat antworten
Alt 07.12.2011, 17:03   #5 (permalink)
Neuer Benutzer

Registriert seit: 22.11.2011
Beiträge: 6
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
Standard AW: Custom Buttons in GridView proportional anpassen

Hab danach gesucht, aber leider hat GridView.LayoutParams kein weight.
Ich poste einfach mal den Quellcode den ich bis jetzt habe...

Hier die XML Datei in der sich auch der GridView befindet:
Code:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:orientation="vertical"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  android:background="#FFFF">
  
      <LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:orientation="vertical"
  android:layout_width="fill_parent"
  android:background="@drawable/kopf_verlauf" android:layout_height="wrap_content" android:id="@+id/headerLayout">
    <ImageView android:id="@+id/imageView1" android:layout_height="wrap_content" android:src="@drawable/logo" android:layout_width="fill_parent" android:layout_marginTop="20sp"></ImageView>
    <ui.widgets.menu.MenuOrangeButton android:layout_width="fill_parent" android:layout_height="fill_parent" android:id="@+id/menuTopOrange" android:layout_marginBottom="5sp"></ui.widgets.menu.MenuOrangeButton>
        
    </LinearLayout>
    
    <RelativeLayout android:layout_height="wrap_content" android:layout_width="wrap_content" android:paddingBottom="10sp" android:layout_below="@+id/headerLayout" android:layout_alignParentBottom="true" android:layout_alignParentLeft="true" android:layout_alignParentRight="true" android:id="@+id/contentLayout">
          
          <GridView xmlns:android="http://schemas.android.com/apk/res/android" 
            android:layout_width="fill_parent" 
            android:layout_height="fill_parent"
            android:numColumns="auto_fit"
            android:stretchMode="spacingWidth"
            android:gravity="center"
            android:id="@+id/uebersichtGridView" android:verticalSpacing="3sp" android:horizontalSpacing="3sp" android:drawingCacheQuality="high" android:columnWidth="90sp"/>
          
      </RelativeLayout>
      <include android:id="@+id/slidingMenu" layout="@layout/sliding_menu_drawer" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_alignParentLeft="true" android:layout_alignParentRight="true" />

    
</RelativeLayout>
Und hier der BaseAdapter den ich überschrieben hab und dem GridView hinzugefügt habe, wobei die ResourceID der Selector-XML in this.h.getGtList().get(position).getSelectorResID( ) steht:
Code:
public class UebersichtGridViewAdapter extends BaseAdapter {

    private Context mContext;
    private Haendler h;
    
    
    public UebersichtGridViewAdapter(Context c, Haendler h) {
        this.mContext = c;
        this.h = h;
    }
    
    @Override
    public int getCount() {
        return h.getGtList().size();

    }

    @Override
    public Object getItem(int position) {
        // TODO Auto-generated method stub
        return h.getGtList().get(position);
    }

    @Override
    public long getItemId(int position) {
        // TODO Auto-generated method stub
        return 0;
    }

    @Override
    public View getView(final int position, final View convertView, ViewGroup parent) {
           Button b = new Button(this.mContext);
           

        
        if(position <= h.getGtList().size()) {
            GridView.LayoutParams lp = new GridView.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
            b.setLayoutParams(lp);
            
            
            
            b.setBackgroundResource(this.h.getGtList().get(position).getSelectorResID());    
        
            b.setFocusable(false);
            b.setFocusableInTouchMode(false);
            b.setClickable(true);

            
        } else {
            // TODO: Blanko-Button without function
        }
        
        return b;
    }


}
Und so wird das ganze initialisiert:
Code:
getHaendler().setGtList((ArrayList<Typ>) result);
                UebersichtGridViewAdapter adapter = new UebersichtGridViewAdapter(view, getHaendler());
                
                view.getContentGridView().setAdapter(adapter);
Ich hoffe es wird jetzt ein bisschen klarer was ich möchte. :-(

Geändert von phiLue (08.12.2011 um 16:25 Uhr)
phiLue ist offline   Mit Zitat antworten
Antwort

Stichworte
button, gridview, selector, skallieren, xml

Themen-Optionen
Ansicht


Ähnliche Themen

Thema Autor Forum Antworten Letzter Beitrag
GridView Fehler zblack Android App Entwicklung 2 07.11.2011 17:09
Gridview-Flipper BtheBeast Android App Entwicklung 2 28.06.2011 08:47
GridView + OnItemClickListener mofl Android App Entwicklung 0 23.05.2011 10:08
Ändern der Volume buttons in scroll buttons reaper2507 HTC Desire Forum 9 19.12.2010 16:41
CustomImageView + GridView + onItemClick Unicate Android App Entwicklung 3 01.10.2010 12:00




Du liest gerade: "Custom Buttons in GridView proportional anpassen" unter "Android App Entwicklung" auf Android-Hilfe.de.


Powered by vBulletin®
Copyright ©2000 - 2012, vBulletin Solutions, Inc.
Search Engine Friendly URLs by vBSEO
© Android-Hilfe.de 2012 - All rights reserved.