Son Forum Aktiviteleri

15
Tümünü Gör

Android Navigation Drawer Icon Problemi

activity_main_drawer.xml

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">

    <group android:checkableBehavior="all">
        <item
            android:id="@+id/nav_login"
            android:icon="@drawable/login"
            android:layout_centerVertical="true"
            android:title="Giriş Yap"/>
        <item
            android:id="@+id/nav_gallery"
            android:icon="@drawable/ic_menu_gallery"
            android:title="Gallery"/>
        <item
            android:id="@+id/nav_slideshow"
            android:icon="@drawable/ic_menu_slideshow"
            android:title="Slideshow"/>
        <item
            android:id="@+id/nav_manage"
            android:icon="@drawable/ic_menu_manage"
            android:title="Tools"/>
    </group>

    <item android:title="Communicate">
        <menu>
            <item
                android:id="@+id/nav_share"
                android:icon="@drawable/buttona"
                android:title="Share"/>
            <item
                android:id="@+id/nav_send"
                android:icon="@drawable/ic_menu_send"
                android:title="Send"/>
        </menu>
    </item>

</menu>

Ek'te verdiğim gibi resim neden görünmüyor login iconu ?

picture-66405-1449241617.jpg
8 yıl 4 ay önce yanıtladın

Android Düzeni Hakkında Region Mantığı

Örneğin C# da şöyleydi.

#region dosyalar sistemi
      ~~~~~~~~~~
      ~~~~~~~~~~ Kodlar
      ~~~~~~~~~~
#endregion

böyle yapınca küçültüp açabiliyoduk. Bir method daki gibi küçültüp kodların görünmemesi gibi birşey.
ama bu method değil isim tanımlıyorsun başlıklar yani küçültüp aşağı yukarı yapmamak için.
Eclipse yada Android Studio da böyle bir kod mevcutmu acaba yada buna benzer birşey bilen bilgi olarak yorum atabilirsiniz.

picture-66405-1449241617.jpg
8 yıl 11 ay önce yanıtladın

Android Uzak veritabanı bağlantısı

picture-66405-1449241617.jpg
06 Ağustos 2016 tarihinde cevaplandı

Öncelikle diğer konuda eskiden yazdığım fonk.java vardı belki işine yarar diye koyayım linki buraya.
https://gelecegiyazanlar.turkcell.com.tr/soru/uzak-veritabani-ile-calisma

Şuan o eski koda göre yeni şeyler keşvettim ve Türkçe kaynak olmadığı için burayada belirmek istiyorum.

Burada Hem yazı göndermeyi gösteriyorum hemde base64 olarak resim göndermeyi gösteriyorum.
fonkisyonlar verdiğim linkte var. gerekirse ordan alırsınız.

 

    String ercnt=  "";
    Bitmap bmpGrnm;
    String imgbase64 = "";
    private JSONObject post(String data[], String dataName[]){
        try{

            String postUrl = "http://www.siteAdı.com/mobil/query/msjgndr.php";

            HttpParams httpParameters = new BasicHttpParams();
            HttpConnectionParams.setConnectionTimeout(httpParameters, 100000);
            HttpConnectionParams.setSoTimeout(httpParameters, 100000);

            DefaultHttpClient httpClient = new DefaultHttpClient();
            HttpPost httpPost = new HttpPost(postUrl);
            httpPost.setParams(httpParameters);

            List<NameValuePair> urlParameters = new ArrayList<NameValuePair>();
            urlParameters.add(new BasicNameValuePair(dataName[1], data[1])); // diziye mesaj adlı mesaj verisini koyuyor. Yani burda mesaj bizim php dosyasından $_POST["mesaj"] olarak çekiceğimiz bilgi oluyor.
            // Örnek urlParameters.add(new BasicNameValuePair("mesaj", "blablalba"));
            imgbase64 = "";
            bmpGrnm = ((BitmapDrawable) imgpreview.getDrawable()).getBitmap(); // resim bitmap dönüştürülüyor
            if (bmpGrnm != null)
                imgbase64 = Base64.encodeToString(fnk.getBytesFromBitmap(bmpGrnm), Base64.DEFAULT); // Resmin Base64string alınıyor.

            urlParameters.add(new BasicNameValuePair("resim", imgbase64)); // Resmin base64 string i gönderilmek üzere diziye ekleniyor.

            httpPost.setEntity(new UrlEncodedFormEntity(urlParameters)); // bilgiler httpPost aktarılıyor

            // execute HTTP post request
            HttpResponse response = httpClient.execute(httpPost); // php dosyasına bilgiler post ediliyor.
            HttpEntity resEntity = response.getEntity(); // gelen bilgi alınıyor

            if (resEntity != null) {
                String responseData = EntityUtils.toString(resEntity).trim(); // gelen bilgi okunuyor.
                return new JSONObject(responseData); // jsonobject atılıp geri bilgiyi jsonobject olarak geri dönderiyor.
            }

        } catch (NullPointerException e) {
            e.printStackTrace();
            ercnt = e.toString();
            return null;
        } catch (Exception e) {
            e.printStackTrace();
            ercnt = e.toString();
            return  null;
        }
        return  null;
    }

    public class PostDataAsyncTask extends AsyncTask<String, String, String> {

        protected void onPreExecute() {
            super.onPreExecute();
        }

        String snc;
        String msg;
        JSONObject json;
        @Override
        protected String doInBackground(String... strings) {
            String[] dataName = null;
            if (strings[0].equals("strimg")) { //buradaki protokol iğer yapıcağımız postları ayırmak için kullanılmıştır. Protokol olmak zorundadır. İsterseniz kendinize farklı bir kontrolde oluştrabilirsiniz ben böyle yaptım.
                dataName = new String[]{"protokol", "mesaj"};
            }

            json = post(strings, dataName); // strings gönderilecek bilgiler dataName php de alınacak bilgiler
            if(json != null) {
                try {
                    if (strings[0].equals("strimg")) { // En iyi kontrol yapısı oluşturma.

                        snc = json.getString("sonuc");
                        msg = json.getString("sonucmesaji");

                    } else
                        return "seçim yok.";

                    return strings[0]; // kontrol edilecek değer.
                } catch (NullPointerException e) {
                    e.printStackTrace();
                    ercnt = e.toString();
                } catch (Exception e) {
                    e.printStackTrace();
                    ercnt = e.toString();
                }
                return "try json error";
            }
            else
                return "null";
        }

        @Override
        protected void onPostExecute(String cvp) {
            if(cvp.equals("seçim yok"))
                fnk.msgFragmentBox("Durum","Seçim Yanlış.","","","Tamam");
            else if(cvp.equals("try json error"))
                fnk.msgFragmentBox("Durum","try json error:\n"+ ercnt,"","","Tamam");
            else if(cvp.equals("null"))
                fnk.msgFragmentBox("Durum","Null:\n"+ ercnt,"","","Tamam");
            else if(cvp.equals("strimg"))
            {
                if (snc.equals("yes")) {
                    // başarıyla mesaj gönderildi
                } else {
                    // mesaj gönderilirken hata oluştu msg değişkeni hata mesajını verir
                }
            }
        }
    }

Kullanımı.

String[] data = {"strimg", "İlk Mesajım"};
new PostDataAsyncTask().execute(data);

PHP Dosyası
 

<?php

	include "../ayarlar.php";
	$msj = $_POST["mesaj"];	
	$rsm = $_POST["resim"];
	if($msj != "" && $rsm != "")
	{
			$query = $db->prepare("INSERT INTO mesajlar SET

			mesaj = ?, resim = ?");

			$insert = $query->execute(array(

				$msj, $rsm

			));

			if ( $insert ){ // mesaj başarıyla eklendi.
				$cevap = array('sonuc' => "yes", 'sonucmesaji' => "Başarıyla Mesaj Gönderildi.");
			}
            else
 			$cevap = array('sonuc' => "no", 'sonucmesaji' => "Mesaj eklenirken hata");		

	}
	else
	    $cevap = array('sonuc' => "no", 'sonucmesaji' => "Gerekli Yerleri Doldurunuz.");
	
    echo json_encode($cevap);

 ?>

 

Android Navigation Drawer Icon Problemi

picture-66405-1449241617.jpg
21 Haziran 2016 tarihinde cevaplandı

Android navigation drawer da icon yok sadece renk var yani onlar icon değil.
Belirli objects(nesneler) için kodları ve sadece renkli yapılabiliyor.
Benim istediğim slider menü iconlu olduğu için. Bu olmaz.
Bunu yapmanın yoluda.

https://www.mobilhanem.com/android-navigation-drawer-ile-slider-menu-yapimi/

yada

http://kod5.org/android-navigation-drawer-ile-slide-menu-2/

Hazır yapılmış verilmiş. İndirip değiştireceksin okadar.
Örnek ben yaptım
Görünüm:
Görsel kaldırıldı.
İndirme Linki : 
http://www.mediafire.com/download/k5c4ec4x61fn2k8/Sorumatik3_Slidemenu.zip

Benzer konuda.
"https://gelecegiyazanlar.turkcell.com.tr/soru/android-slider-menu"

Android Sürüm Kodu

picture-66405-1449241617.jpg
13 Şubat 2016 tarihinde cevaplandı

Android Studio için:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.xxxxx.xxxxx.xxxxx"
    android:versionCode="2"
    android:versionName="1.2"
    >

version code ve version name yi +1 şeklinde arttıralım.

birde

build.grandle kısmından 

defaultConfig {
        applicationId "com.xxxxx.xxxxx.xxxxx"
        minSdkVersion 17
        targetSdkVersion 23
        versionCode 2
        versionName "1.2"
    }

aynı şekilde version code 2

version name aynı manifest teki gibi yapalım.
sonra release edip apk mızı atabiliriz.

Harita Üzerinde Yol Çizmek

picture-66405-1449241617.jpg
11 Şubat 2016 tarihinde cevaplandı

Gülşah çok güzel anlatmışsın ya :D
Herneyse gelelim konumuza..

Google maps v2 üzerinde harita çizmek nasıl olur. Aradan baya zaman geçmiş ama bende şuan 8 ay 4 hafta diyor

internette çok fazla türkçe kaynak yok daha doğrusu yeni yok. bende stackover üzerinden genelde gittiğim için sizlere anlatıcağım birde kaynakları belirteceğim.

ben fonksiyon üzerinden yaptım çünkü kod kalabalığı oluyor.

Bir class oluşturalım adı rota.class içerisine verdiğim kodları yapıştırın.

import android.app.ProgressDialog;
import android.content.Context;
import android.graphics.Color;
import android.os.AsyncTask;
import android.util.Log;

import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.Polyline;
import com.google.android.gms.maps.model.PolylineOptions;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.List;

/**
 * Created by ProgrammerDky on 11.02.2016.
 */
public class rota {

    private Context cnt;
    public rota(Context c)
    {
        this.cnt = c;
    }

    public String makeURL (double sourcelat, double sourcelog, double destlat, double destlog){
        StringBuilder urlString = new StringBuilder();
        /*
        if(mode == null)
            mode = "driving";*/

        urlString.append("http://maps.googleapis.com/maps/api/directions/json");
        urlString.append("?origin=");// from
        urlString.append(Double.toString(sourcelat));
        urlString.append(",");
        urlString
                .append(Double.toString( sourcelog));
        urlString.append("&destination=");// to
        urlString
                .append(Double.toString( destlat));
        urlString.append(",");
        urlString.append(Double.toString( destlog));
        urlString.append("&sensor=false&mode=driving&alternatives=true&language=tr");
        return urlString.toString();
    }

    public static class JSONParser {

        static InputStream is = null;
        static JSONObject jObj = null;
        static String json = "";
        // constructor
        public JSONParser() {
        }
        public String getJSONFromUrl(String url) {

            // Making HTTP request
            try {
                // defaultHttpClient
                DefaultHttpClient httpClient = new DefaultHttpClient();
                HttpPost httpPost = new HttpPost(url);

                HttpResponse httpResponse = httpClient.execute(httpPost);
                HttpEntity httpEntity = httpResponse.getEntity();
                is = httpEntity.getContent();

            } catch (UnsupportedEncodingException e) {
                e.printStackTrace();
            } catch (ClientProtocolException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
            try {
                BufferedReader reader = new BufferedReader(new InputStreamReader(
                        is, "iso-8859-1"), 8);
                StringBuilder sb = new StringBuilder();
                String line = null;
                while ((line = reader.readLine()) != null) {
                    sb.append(line + "\n");
                }

                json = sb.toString();
                is.close();
            } catch (Exception e) {
                Log.e("Buffer Error", "Error converting result " + e.toString());
            }
            return json;

        }
    }

    public void drawPath(String  result) {

        try {
            //Tranform the string into a json object
            final JSONObject json = new JSONObject(result);
            JSONArray routeArray = json.getJSONArray("routes");
            JSONObject routes = routeArray.getJSONObject(0);
            JSONObject overviewPolylines = routes.getJSONObject("overview_polyline");
            String encodedString = overviewPolylines.getString("points");
            List<LatLng> list = decodePoly(encodedString);
            Polyline line = harita.googleHarita.addPolyline(new PolylineOptions()
                            .addAll(list) // tüm listeyi tek seferde ekleme.
                            .width(12)
                            .color(Color.parseColor("#05b1fb"))//Google maps blue color
                            .geodesic(true)
            );
           /* tek tek ekler ama gerek yok.
           for(int z = 0; z<list.size()-1;z++){
                LatLng src= list.get(z);
                LatLng dest= list.get(z+1);
                Polyline line = mMap.addPolyline(new PolylineOptions()
                .add(new LatLng(src.latitude, src.longitude), new LatLng(dest.latitude,   dest.longitude))
                .width(2)
                .color(Color.BLUE).geodesic(true));
            }
           */
        }
        catch (JSONException e) {

        }
    }

    public List<LatLng> decodePoly(String encoded) {

        List<LatLng> poly = new ArrayList<LatLng>();
        int index = 0, len = encoded.length();
        int lat = 0, lng = 0;

        while (index < len) {
            int b, shift = 0, result = 0;
            do {
                b = encoded.charAt(index++) - 63;
                result |= (b & 0x1f) << shift;
                shift += 5;
            } while (b >= 0x20);
            int dlat = ((result & 1) != 0 ? ~(result >> 1) : (result >> 1));
            lat += dlat;

            shift = 0;
            result = 0;
            do {
                b = encoded.charAt(index++) - 63;
                result |= (b & 0x1f) << shift;
                shift += 5;
            } while (b >= 0x20);
            int dlng = ((result & 1) != 0 ? ~(result >> 1) : (result >> 1));
            lng += dlng;

            LatLng p = new LatLng( (((double) lat / 1E5)),
                    (((double) lng / 1E5) ));
            poly.add(p);
        }

        return poly;
    }

    public class rotaCizAsyncTask extends AsyncTask<Void, Void, String> {
        private ProgressDialog progressDialog;
        String url;
        rotaCizAsyncTask(String urlPass){
            url = urlPass;
        }
        @Override
        protected void onPreExecute() {
            // TODO Auto-generated method stub
            super.onPreExecute();
            progressDialog = new ProgressDialog(cnt);
            progressDialog.setMessage("Rota hesaplanıyor lütfen bekleyiniz...");
            progressDialog.setIndeterminate(true);
            progressDialog.show();
        }
        @Override
        protected String doInBackground(Void... params) {
            JSONParser jParser = new JSONParser();
            String json = jParser.getJSONFromUrl(url);
            return json;
        }
        @Override
        protected void onPostExecute(String result) {
            super.onPostExecute(result);
            progressDialog.hide();
            if(result!=null){
                drawPath(result);
            }
        }
    }

}

Classta tek bi yerde değişiklik yapıcaksınız.
harita.googleHarita  Yazan kısımda harita benim activity class mın adı yani orayada hangi activityde göstermek istiyorsanız o class ın adını yazıcaksınız.
bu sayede aşağıda göstermiş oldugum kullanımda static GoogleMaps googleHarita dan anlarsanız sınız ztn.

Evet şimdik örnek kullanım kodlarını vericeğim.

// global olarak ekleyelim static olma sebebi class üzerinden haritaya değişiklik verdiğimiz içindir.
static GoogleMap googleHarita;
rota rt = new rota(this); // global olarak tanımlayın


// ONCREATE kısmında google haritamızı harita ayarlarını v.s şeylerini yapalım 
// bunları ekstra olarak koyuyorum birilerinin işine yarar diye

googleHarita = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.haritafragment)).getMap();
googleHarita.setMapType(GoogleMap.MAP_TYPE_SATELLITE);
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {

}
googleHarita.getUiSettings().setZoomControlsEnabled(true);
googleHarita.getUiSettings().setZoomGesturesEnabled(true);
googleHarita.setMyLocationEnabled(true);
googleHarita.getUiSettings().setMyLocationButtonEnabled(true);
googleHarita.getUiSettings().setMapToolbarEnabled(false);
googleHarita.getUiSettings().setMyLocationButtonEnabled(true);
googleHarita.setTrafficEnabled(true);
googleHarita.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(41.01, 28.58), 8));

//////////////////////////////////////////////////////////////

// ÖRNEK bir button eventinin içine yazdığınızı varsayıyorum.

locationManager = (LocationManager)getSystemService(LOCATION_SERVICE); // gps ve internet kontrolü için gerekli. kendi konumuzun servisini kullanmamız gerekiyor.

boolean isGPSEnabled = locationManager
		.isProviderEnabled(LocationManager.GPS_PROVIDER); // gps durumu kontrolü

// getting network status
boolean isNetworkEnabled = locationManager
		.isProviderEnabled(LocationManager.NETWORK_PROVIDER); // internet durumu kontrolü

if (isGPSEnabled && isNetworkEnabled) { // 2 side açık ise girecek.
	Location lc =googleHarita.getMyLocation(); // google maps üzerinden kendi konumunu alma.

	if(lc != null) {
		double lat = lc.getLatitude(); // enlem
		double lng = lc.getLongitude(); // boylam
		googleHarita.clear(); // önceden oluşturulmuş markerleri temizlemek için.
		googleHarita.addMarker(new MarkerOptions().position(new LatLng(lat, lng)).title("Ben")); // bulundugum yeri işaretliyorum yani marker koyuyoruz.
		googleHarita.addMarker(new MarkerOptions().position(new LatLng(gidilecekEnlem,gidilecekBoylam).title("Gideceğim Yer")); // gideceğim yeri işaretliyorum yani marker koyuyoruz.
		

		String url = rt.makeURL(lat, lng, gidilecekEnlem, gidilecekBoylam); // googleden rota bilgilerini almak için url oluşturuyoruz.
// örnek test yapmak istiyorsanız.
//http://maps.googleapis.com/maps/api/directions/json?origin=40.90%2C29.90&destination=40.85%2C29.80&sensor=false&mode=driving&alternatives=true&language=tr
// tarayıcıya yapıştırın örnek gidişatın kodlarını görün.

		rt.new rotaCizAsyncTask(url).execute(); // bu kısım rota class kısmı url gönderiyoruz ve rotamız oluşturulucak.

		googleHarita.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(lat, lng), 8)); // kamerayı bulunduğumuz yere getiriyoruz.
        
	}
	else
		Toast.makeText(getApplicationContext(), "Seni bulamadık lütfen tekrar dene.", Toast.LENGTH_SHORT).show();
}
else
	Toast.makeText(getApplicationContext(), "GPS kapalı", Toast.LENGTH_SHORT).show();




Kullandıgım kaynaklar:
Daha çok var ama sağlam olanları bunlar.

http://stackoverflow.com/questions/14702621/answer-draw-path-between-two-points-using-google-maps-android-api-v2

https://github.com/tato469/Android/blob/master/routes%20googleMaps%20v2/Route.java