| |||||||
Das Thema "Custom Buttons in GridView proportional anpassen" befindet sich unter Android App Entwicklung auf Android-Hilfe.de.
|
| | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Neuer Benutzer Registriert seit: 22.11.2011
Beiträge: 6
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
| 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? |
| | |
| | #2 (permalink) |
| Android Guru Registriert seit: 09.05.2009
Beiträge: 2.389
Abgegebene Danke: 36
Erhielt 307 Danke für 289 Beiträge
|
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 ) |
| | |
| | #3 (permalink) |
| Neuer Benutzer Registriert seit: 22.11.2011
Beiträge: 6
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
|
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) |
| | |
| | #4 (permalink) |
| Android Guru Registriert seit: 09.05.2009
Beiträge: 2.389
Abgegebene Danke: 36
Erhielt 307 Danke für 289 Beiträge
|
naja mit layout weight kannst du das leicht bestimmen
__________________ App Entwicklung Latest apps: Media Streamer BETA | DailyCash | MoneyManager ( PRO | HD ) |
| | |
| | #5 (permalink) |
| Neuer Benutzer Registriert seit: 22.11.2011
Beiträge: 6
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
|
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> 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;
}
} Code: getHaendler().setGtList((ArrayList<Typ>) result);
UebersichtGridViewAdapter adapter = new UebersichtGridViewAdapter(view, getHaendler());
view.getContentGridView().setAdapter(adapter); Geändert von phiLue (08.12.2011 um 16:25 Uhr) |
| | |
![]() |
|
| Themen-Optionen | |
| Ansicht | |
| |
| ||||
| 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 |