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

View repositionieren

Das Thema "View repositionieren" befindet sich unter Android App Entwicklung auf Android-Hilfe.de.


Antwort

 

Themen-Optionen Ansicht
Alt 23.02.2010, 15:29   #1 (permalink)
Neuer Benutzer
 
Benutzerbild von Kritzli

Modell: Emulator

Registriert seit: 23.02.2010
Beiträge: 14
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
Kritzli eine Nachricht über ICQ schicken
Standard View repositionieren

Also ich habs ja schon angekündigt/gedroht/wasauchimmer. Hier ist eine der ersten von zehntausend Fragen

Und zwar, bastel ich derzeit ein App, in dem man sich selbst ein Softkeyboard zusammenstellen kann. Dafür hab ich derzeit 2 Activities (A und B). In der Activity A wird die Größe eingestellt und welche Buchstaben auf die Taste sollen. Dann wird die Größe und der Text an Activity B weitergegeben. Dort wird durch Gestures der Button an eine beliebige Stelle des Bildschirms positioniert, z.B. Rechts unten. Danach wird er in eine Arraylist abgespeichert, man kommt zurück zu Activity A und der nächste Knopf kann erstellt werden.

Dann sollte es so sein, dass wenn ich den nächsten Knopf positionieren will, mir der Alte an seiner Position (Rechts unten) angezeigt wird, und der Neue irgendwo positioniert werden kann.

Daran scheiterts derzeit aber, denn alle alten Knöpfe werden mir Links oben angezeigt und ich versteh net so ganz warum.
Denn in der onGesturePerformed - Methode verschiebt er mir den Knopf ja auch an eine beliebige Stelle, warum also nicht, wenn ich ihn aus der Liste auslese ?

Hab das Ganze mal mit XML - Layout und einmal komplett dynamisch gemacht. Nutzte aber auch nicht wirklich was...

ok. hier jetzt mal der Code zum Problem/Activity B:
Code:
package example.com.fpa;

import java.util.ArrayList;
import java.util.Iterator;

import android.app.Activity;
import android.content.Intent;
import android.gesture.Gesture;
import android.gesture.GestureLibraries;
import android.gesture.GestureLibrary;
import android.gesture.GestureOverlayView;
import android.gesture.Prediction;
import android.gesture.GestureOverlayView.OnGesturePerformedListener;
import android.os.Bundle;
import android.util.Log;
import android.view.Gravity;
import android.view.View;
import android.view.ViewGroup;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.RelativeLayout;
import android.widget.Toast;
import android.widget.RelativeLayout.LayoutParams;

public class keyboard_view_dyna extends Activity implements OnGesturePerformedListener{

    protected Button key_button;
    protected GestureLibrary mLibrary;
    protected int position;
    public static ArrayList<Button> keyList = new ArrayList<Button>();
    public Iterator iter;

    
            /** Called when the activity is first created. */
            public void onCreate(Bundle savedInstanceState) {
                    super.onCreate(savedInstanceState);
                    
                    
                    final Intent intent = new Intent(this, fpa.class);
                    
                    RelativeLayout rel_layout = new RelativeLayout(this);
                    RelativeLayout.LayoutParams bb = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
                    bb.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
                    bb.addRule(RelativeLayout.ALIGN_PARENT_LEFT);
                    RelativeLayout.LayoutParams fb = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
                    fb.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
                    fb.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
                    RelativeLayout.LayoutParams cb = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
                    cb.addRule(RelativeLayout.CENTER_IN_PARENT);
                    RelativeLayout.LayoutParams ges = new RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
                    ges.setMargins(0, 0, 0, 50);

                    Button back_button = new Button(this);
                    back_button.setText("Zurück");
                    back_button.setWidth(100);
                    back_button.setLayoutParams(bb);
                    rel_layout.addView(back_button);
                   
                    
                    Button accept_button = new Button(this);
                    accept_button.setText("Fertig");
                    accept_button.setWidth(100);
                    accept_button.setLayoutParams(fb);
                    rel_layout.addView(accept_button);
                    
                    key_button = new Button(this); 
                    key_button.setClickable(false);
                    key_button.setLayoutParams(cb);
                    rel_layout.addView(key_button);
                    
                mLibrary = GestureLibraries.fromRawResource(this, R.raw.gestures);
                if (!mLibrary.load()) {
                    finish();
                }
                
                GestureOverlayView gestures = new GestureOverlayView(this);
                gestures.setGestureVisible(true);
                gestures.setLayoutParams(ges);
                rel_layout.addView(gestures);

                
                key_button.setHeight(getIntent().getExtras().getInt("height"));
                key_button.setWidth(getIntent().getExtras().getInt("width"));
                key_button.setText(getIntent().getExtras().getCharSequence("letter"));
              

                
                back_button.setOnClickListener(new OnClickListener(){
                    public void onClick(View v){
                        //Perform action on clicks
                        
                            intent.putExtra("height", key_button.getHeight());
                            intent.putExtra("width", key_button.getWidth());
                            startActivity(intent);
                    }
                });
                
                accept_button.setOnClickListener(new OnClickListener(){
                    public void onClick(View v){
                        //Perform action on clicks
                        keyList.add(key_button);
                            intent.putExtra("height", key_button.getHeight());
                            intent.putExtra("width", key_button.getWidth());
                            startActivity(intent);
                    }
                });
                
             
                if(keyList.isEmpty() == false){
                    for (iter = keyList.iterator(); iter.hasNext();){
                        
                        Button k =  (Button) iter.next();
                        Button ok = new Button(this);

                        ok.setHeight(k.getHeight());
                        ok.setWidth(k.getWidth());
                        ok.setText(k.getText());
//               
//                        Log.i("Button OK", "Height: " + ok.getHeight());
//                        Log.i("Button OK", "Width: " + ok.getWidth());
//                        
//                        
                        ok.layout(k.getLeft(), k.getTop(), k.getRight(), k.getBottom());
                        
                        Log.i("Button OK", "Links: " + ok.getLeft());
                        Log.i("Button OK", "Oben: " + ok.getTop());
                        Log.i("Button OK", "Rechts: " + ok.getRight());
                        Log.i("Button OK", "Unten: " + ok.getBottom());
                        ok.setVisibility(1);
                        
                        rel_layout.removeView(ok);
                    
                        rel_layout.addView(ok);
                        
                        
                        
                    }
                    
                }
                this.setContentView(rel_layout);
                gestures.addOnGesturePerformedListener(this);
         }//endOnCreate
            
            

            @Override
            public void onGesturePerformed(GestureOverlayView overlay, Gesture gesture) {
                // TODO Auto-generated method stub
                ArrayList<Prediction> predictions = mLibrary.recognize(gesture);
                int width = key_button.getWidth();
                int display_width = getWindowManager().getDefaultDisplay().getWidth();
                int start_width = display_width - width;
                
                int height = key_button.getHeight();
                int display_height = getWindowManager().getDefaultDisplay().getHeight();
                int start_height = display_height - 130 - height;
//                position = key_button.getLocationInWindow(FOCUSED_STATE_SET);
                
                // We want at least one prediction
                if (predictions.size() > 0) {
                    Prediction prediction = predictions.get(0);
                    // We want at least some confidence in the result
                    if (prediction.name.equals("add_key_left")) {
                        key_button.layout(10, 10, 10 + width, 10 + height);
                        Toast.makeText(keyboard_view_dyna.this, "Ausrichtung: " +  key_button.getLeft() + "Rechts: " + key_button.getRight() + "Oben: " + key_button.getTop() + "Unten: " + key_button.getBottom(), Toast.LENGTH_SHORT).show();
                    }
                    if(prediction.name.equals("add_key_downleft")){
                        key_button.layout(10, start_height, 10 + width, start_height + height);
                        Toast.makeText(keyboard_view_dyna.this, "Ausrichtung: " +  key_button.getLeft() + "Rechts: " + key_button.getRight() + "Oben: " + key_button.getTop() + "Unten: " + key_button.getBottom(), Toast.LENGTH_SHORT).show();

                    }
                    
                    if(prediction.name.equals("add_key_right")){
            
                        key_button.layout(start_width, 10, start_width + width , 10 + height);
                        Toast.makeText(keyboard_view_dyna.this, "Ausrichtung: " +  key_button.getLeft() + "Rechts: " + key_button.getRight() + "Oben: " + key_button.getTop() + "Unten: " + key_button.getBottom(), Toast.LENGTH_SHORT).show();

                    }
                    if(prediction.name.equals("add_key_downright")){
                        key_button.layout(start_width, start_height, start_width + width, start_height + height);
                        Toast.makeText(keyboard_view_dyna.this, "Ausrichtung: " +  key_button.getLeft() + "Rechts: " + key_button.getRight() + "Oben: " + key_button.getTop() + "Unten: " + key_button.getBottom(), Toast.LENGTH_SHORT).show();

                    }
                    
                }
            }//endGesturePerformed
    
}
Also wenn mir jemand helfen könnte oder Tipps, Hinweise, sonstiges für mich hätte, wäre das echt toll !
Kritzli ist offline   Mit Zitat antworten
Antwort

Stichworte
-

Themen-Optionen
Ansicht


Ähnliche Themen

Thema Autor Forum Antworten Letzter Beitrag
View dynamisch ansprechen Fr4gg0r Android App Entwicklung 4 12.05.2010 16:18
360° View Tim Posnien Android App Entwicklung 0 20.01.2010 15:46
Street View 2Stoned Sonstige Apps & Widgets 4 19.08.2009 12:28
KEYCODE_BACK in einer View abfangen DocJunioR Android App Entwicklung 3 18.07.2009 19:30
Buttons auf Surface View?? DocJunioR Android App Entwicklung 0 13.07.2009 11:11




Du liest gerade: "View repositionieren" 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.