Also, ich hab ne app die meine aktuelle Position auf ner map darstellt...Nun wollt ich ne zweite Koordniate darstellen und wollt nun die route zwischen den beiden einzeichnen auf der Map(So wie bei nem Routenplaner halt)...Und nun wollte ich fragen ob es da tutorials gibt, bzw ob es überhaupt möglich ist?
Mfg Lukas Gregori
Beiträge von grege4
-
-
Hallo an alle,
Habe eine App programmiert die mir mit google maps einen Geopoint(meine aktuelle Koordinaten) darstell. Nun wollte ich wissen ob es für ein Navigationssystem schon vorgefertigte wege gibt dies zurealisieren? Oder muss man alles von Grund auf neu "erfinden"? Kennt ihr Tutorien? Mfg Lukas Gregori
-
Push
-
Hallo und erstmal danke für die shcnelle Antwort...
Nein die Kopfhörer sind kein einwegsyastem da ja das signal vom Mikrofoneingang ins Handy reingeht ==> Sensor...
Bzw die Beiden Audiokanäle(link, rechts) aus dem Handy rausgen ==> Ausgabe.... Wollt nur wissen obs da shcon irgndwas gibt oder ob ich von null starten muss;)Mfg Lukas
-
Hallo erstmal,
Ich würde gerne über den Klinken Eingang meines Handys einen Wert einlesen den ich vorher über eine Schaltung in eine geignete Form umgewandelt habe(Sinusschwingung zb.) Wollte nun fragen ob irgendwer Erfahrungen damit gemacht hatt?
Mfg Lukas
-
Weiß keiner weiter ;)?
HILLFFEEE xDMfg Lukas
-
Ahh jah okey, ja hab nur gedacht das is so ne kommische warnung dass wahrscheinlich nur der Google Gott höchst persönlich chancen hätt das hinzubiegen;)
Mfg Lukas -
Ja die Permissions sind gesetzt:)
Mfg Lukas
-
Die Lv?
-
Keiner mehr irgendeine Idee ?
Mfg Lukas
-
Die Logcat ibt mir eben nru die obige Warning aus leider:(,
Mfg Lukas
-
Hallo an alle, habe mir das Tutorial auf android developers bezüglich google Maps mal durchgesehen und alles so gemacht wies dort stand, habe mir auch den google maps key generiert....Wenn ich nun die Applikation am Handy starte bekommen ich folgende fehlermeldung:
Couldnt get connection factory client
Habt ihr irgendwelche Ideen warum das so is?
Mfg lukas
Code stammt von:
-
Hallo erstmal an alle:) Habe eine App geschrieben die Bilder verschieb, also auf dem Display und touch events erkennt...Nun hab ich aus einem Tutorial noch eine Zoom Class herauskopiert und das funktioniert auch für sich aleine supper....Nun weiß ich nur nicht wie ich die beiden verbinden koennte, hoffe ihr koennt mir da helfen! Mfg Lukas
Move Class:
package com.example.largeimagescroller;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.app.AlertDialog.Builder;
import android.os.Bundle;
import android.content.Context;
import android.content.DialogInterface;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.Rect;
import android.graphics.drawable.Drawable;
import android.text.style.ScaleXSpan;
import android.view.Display;
import android.view.KeyEvent;
import android.view.MotionEvent;
import android.view.View;
import android.view.WindowManager;
import android.widget.ImageView;
import android.widget.Toast;
import android.widget.ZoomButtonsController;
import android.widget.ZoomButtonsController.OnZoomListener;
import android.widget.ZoomControls;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.drawable.Drawable;
import android.view.KeyEvent;
import android.view.MotionEvent;
import android.view.View;
import android.widget.ZoomButtonsController;
import android.widget.ZoomButtonsController.OnZoomListener;
public class LargeImageScroller extends Activity {
// Physical display width and height.
private static int displayWidth = 0;
private static int displayHeight = 0;
private static int view =0;
static int updo =0;
static float[] zw = new float[1];
static String Text;
static Variables v = new Variables();
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// setContentView(new Zoom(this));
// displayWidth and displayHeight will change depending on screen
// orientation. To get these dynamically, we should hook onSizeChanged().
// This simple example uses only landscape mode, so it's ok to get them
// once on startup and use those values throughout.
Display display = ((WindowManager)
getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
displayWidth = display.getWidth();
displayHeight = display.getHeight();// SampleView constructor must be constructed last as it needs the
// displayWidth and displayHeight we just got.
setContentView(new SampleView(this));
// setContentView(new Zoom(this));
}
private static class SampleView extends View {
private static Bitmap bmLargeImage; //bitmap large enough to be scrolled
private static Bitmap dummyBitmap;
private static Rect displayRect = null; //rect we display to
private Rect scrollRect = null; //rect we scroll over our bitmap with
private int scrollRectX = 0; //current left location of scroll rect
private int scrollRectY = 0; //current top location of scroll rect
private float scrollByX = 0; //x amount to scroll by
private float scrollByY = 0; //y amount to scroll by
private float startX = 0; //track x from one ACTION_MOVE to the next
private float startY = 0; //track y from one ACTION_MOVE to the next
int dummy = 0;
public SampleView(Context context) {
super(context);
// Destination rect for our main canvas draw. It never changes.
displayRect = new Rect(0, 0, displayWidth, displayHeight);
// Scroll rect: this will be used to 'scroll around' over the
// bitmap in memory. Initialize as above.
scrollRect = new Rect(0, 0, displayWidth, displayHeight);
// Load a large bitmap into an offscreen area of memory.
if(dummy ==0){
int dWidth = displayWidth;
int dHeigth = displayHeight;
//Erzeugt zunächst eine "Dummy" Bitmap aus dem Bild und Scaliert diese Dann im nächsten Schritt
dummyBitmap = BitmapFactory.decodeResource(getResources(),
R.drawable.ando);
bmLargeImage = Bitmap.createScaledBitmap(dummyBitmap, dWidth,dHeigth,false);
}else{
bmLargeImage = BitmapFactory.decodeResource(getResources(),
R.drawable.testlargeimg);
}
}
@SuppressWarnings("unused")
@Override
public boolean onTouchEvent(MotionEvent event) {
AlertDialog.Builder builder = new AlertDialog.Builder(getContext());
builder.setCancelable(true);
//builder.setIcon(R.drawable.dialog_question);
//builder.setTitle(Text + " Field");
builder.setInverseBackgroundForced(true);
builder.setMessage("A Lot of Crazy Information about: " + Text);// Text);
builder.setPositiveButton("More Information", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
builder.setNegativeButton("Continue", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
AlertDialog alert = builder.create();
switch (event.getAction()) {
case MotionEvent.ACTION_MOVE:
alert.dismiss();
float x = event.getRawX();
float y = event.getRawY();
// Calculate move update. This will happen many times
// during the course of a single movement gesture.
scrollByX = x - startX; //move update x increment
scrollByY = y - startY; //move update y increment
startX = x; //reset initial values to latest
startY = y;
invalidate(); //force a redraw
break;
case MotionEvent.ACTION_DOWN:
// Remember our initial down event location.
startX = event.getRawX();
startY = event.getRawY();
if(dummy==0){
dummy=1;
bmLargeImage = BitmapFactory.decodeResource(getResources(),
R.drawable.testlargeimg);
invalidate();
}
float w = bmLargeImage.getWidth();
float h =bmLargeImage.getHeight();
float px= (100/w)*(scrollRectX+ event.getRawX());
float py =(100/h)*(scrollRectY + event.getRawY());
if(zw[0]==0){
zw[0] = startX;
}else{
}
CharSequence text = "X:" + px + " Y:" + py;
int duration = Toast.LENGTH_SHORT;
//Text = check((int)px,(int)py);
v.fill();
int[]cor = new int[2];
getLocationOnScreen(cor);
Text = v.check(scrollRectX+ event.getRawX(),scrollRectY + event.getRawY(),w,h);
break;
case MotionEvent.ACTION_UP:
if(zw[0] == event.getRawX()&& Text != "false"){
alert.show();
}else{
alert.dismiss();
}
zw[0]=0;
//Toast toast = Toast.makeText(getContext(),""+zw[0]+" " + event.getRawX() + " " + bmLargeImage.getWidth() , 100);
//toast.show();
break;
}
return true; //done with this event so consume it
}
@Override
protected void onDraw(Canvas canvas) {
// Our move updates are calculated in ACTION_MOVE in the opposite direction
// from how we want to move the scroll rect. Think of this as dragging to
// the left being the same as sliding the scroll rect to the right.
int newScrollRectX = scrollRectX - (int)scrollByX;
int newScrollRectY = scrollRectY - (int)scrollByY;
// Don't scroll off the left or right edges of the bitmap.
if (newScrollRectX < 0)
newScrollRectX = 0;
else if (newScrollRectX > (bmLargeImage.getWidth() - displayWidth))
newScrollRectX = (bmLargeImage.getWidth() - displayWidth);
// Don't scroll off the top or bottom edges of the bitmap.
if (newScrollRectY < 0)
newScrollRectY = 0;
else if (newScrollRectY > (bmLargeImage.getHeight() - displayHeight))
newScrollRectY = (bmLargeImage.getHeight() - displayHeight);
// We have our updated scroll rect coordinates, set them and draw.
scrollRect.set(newScrollRectX, newScrollRectY,
newScrollRectX + displayWidth, newScrollRectY + displayHeight);
Paint paint = new Paint();
canvas.drawBitmap(bmLargeImage, scrollRect, displayRect, paint);
// Reset current scroll coordinates to reflect the latest updates,
// so we can repeat this update process.
scrollRectX = newScrollRectX;
scrollRectY = newScrollRectY;
}
}}Zoom Class:
package com.example.largeimagescroller;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.drawable.Drawable;
import android.view.KeyEvent;
import android.view.MotionEvent;
import android.view.View;
import android.widget.ZoomButtonsController;
import android.widget.ZoomButtonsController.OnZoomListener;
public class Zoom extends View {
private Drawable image;
private int zoomControler=20;
private ZoomButtonsController zoomController ;
public Zoom(Context context)
{
super(context);
image=context.getResources().getDrawable(R.drawable.testlargeimg);
setFocusable(true);
zoomController = new ZoomButtonsController(this);
zoomController.setOnZoomListener(new OnZoomListener() {
@Override
public void onZoom(boolean zoomIn) {
//onZoom(zoomIn);
zoomControler+=10;
invalidate();
}
@Override
public void onVisibilityChanged(boolean visible) {
}
});}
public boolean onTouchEvent(MotionEvent event){
if(MotionEvent.ACTION_DOWN== event.getAction()){
zoomController.setVisible(true);
}
return true;
}
@Override
protected void onDraw(Canvas canvas) {
// TODO Auto-generated method stub
super.onDraw(canvas);
//here u can control the width and height of the images........ this line is very important
image.setBounds((getWidth()/2)-zoomControler, (getHeight()/2)-zoomControler, (getWidth()/2)+zoomControler, (getHeight()/2)+zoomControler);
image.draw(canvas);
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(keyCode==KeyEvent.KEYCODE_DPAD_UP)// zoom in
zoomControler+=10;
if(keyCode==KeyEvent.KEYCODE_DPAD_DOWN) // zoom out
zoomControler-=10;
if(zoomControler<10)
zoomControler=10;
invalidate();
return true;
}
} -
Nein habe die Permissions gesetzt:) Mfg
-
Ja dacht ich mir eventuell auch shcon und werd das auch gleich mal probieren, verstehe nur nicht warum der Pfad wenn ich ihn falsch eingebe das Programm nicht im geringsten beinflusst Naja mal weiterschaun, wär auf jedenfall sehr dankbar wenn wer ideen hätte
-
So drittes Update Hab jetzt mal den Link vom Pfad k in den Link geändert den er mir im Bild, also in der Fehlermeldung, nennt...Jetzt krieg ich zwar keinen Fehlermeldung mehr aber eine Warnung die ich wieder in einem Bild anhänge...Und was ich auch seltsam find is, wenn ich nun den namen der Datei absichtlich falsch eingebe bekomm ich trotzdem nur die gleiche warning! Und wenn ich bei den Einstellungen dann naschau wa sich für einen Klingelton eingestellt habe, ist dort zwar der richitge name eingestellt aber unter dem klingelton namen ist nur der standard klingelton....seltsam
Mfg Lukas
-
Ach jah, der original Code aus dem Tutorial war da etwasa anders und zwar:
//Insert it into the database
Uri uri = MediaStore.Audio.Media.getContentUriForPath(k.getAbsolutePath());
Uri newUri = MainActivity.this.getContentResolver().insert(uri, values);
Und ich wuste nciht was mit dem MainActivity gemeint war und nach etwaiigem rumprobieren hab ich das einfach
zum Testen mal wegggelassen Was macht das denn genau? Und was wär das bei mir? Mfg Lukas -
Würd mich sehr freuen:) Ich weiß nur nicht genau was am link nicht passen soll??? Dachte daas wär der richitge link weil wenn ich am pc nachschau wo die datei gespeichert ist passt das eigentlich Aber ja, schau bitte nach, würd mich freuen, wahrscheinlich seh ich nur den Wald vor lauter Bäumen nciht;)
Mfg Lukas
-
Erst mal danke für die schnelle Antwort. Bin leide rnoch kompletter Anfänge und hab die Warnings mit den Errors verwechselt(Die Farben ähneln sich ja leider sehr:P Habe ein Bild mit angehängt und denke das sollte der Fehler sein : java.lang.UnsupportedOperationException: Unknown URI:.....
Mfg Lukas
-
Oh ja, tut mir leid habs vergessen:)
Hier nochmal die Log Cat:Key dispatching timed out sending to grege.cmp/grege.cmp.ListViewRingtone
Dispatch State: {{Keyevent.....
Current State: {{null to Window...
Continouing to wait for key to be dispatchedHoffe das Hilft weiter