folder Tahribat.com Forumları
linefolder Mobil Programlama
linefolder Android İle Dinamik Resim Oluşturma Ve Arkaplan Belirleme.



Android İle Dinamik Resim Oluşturma Ve Arkaplan Belirleme.

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    camarade
    ontedi
    ontedi's avatar
    Kayıt Tarihi: 04/Eylül/2005
    Erkek

    Şimdi gençler takıldığım bir nokta var. Stackoverflow'dan felan baktım da ilerleyemedim açıkcası.

    ArrayList içerisinde değerlerim mevcut. içerisinde resim_url diye bir değer geliyor yaklaşık 30 tane ama bu artabilir. Şimdi ben bu diziyi for ile deolaşıyorum.

            protected void onPostExecute(Void result) {
                super.onPostExecute(result);
                for (int i = 0;i < alKategoriler.size();i++)
                {
                    String strResim_Kucuk = alKategoriler.get(i).get("resim_kucuk");
                    // Gelen değerler http://falancasite/v/deneme1.jpg
                    // http://falancasite/v/ayse.jpg
                }
            }

     

    Şeklinde gelmektedir. Yapmak istediğim ise for bloğundaki aldığım değerlere karşılık dinamik olarak imagebutton oluşturup her bir imagebutonun backgroundını gelen değeri vermek isteiyorum. tabii oluşan şeyi ekrana basacak.

     

    Yardımlarınız için şimdiden teşekkürler.

     

     


    Matematikçi ve Yazılımcı. http://www.ontedi.com ve http://www.cizgi.site Siteme beklerim herkesi.
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    h0rtl4kk
    h0rtl4kk's avatar
    Kayıt Tarihi: 10/Şubat/2014
    Erkek

    http://stackoverflow.com/questions/15356473/create-imageviews-dynamically-inside-a-loop/15356823

    Yukarıdaki linkte for içerisinde imagebutton oluşturmayı yazmış.

    Resim url şeklinde ise ve bu urlyi imagebutton'da göstereceksen Picasso kütüphanesini kullanabilirsin.

    http://square.github.io/picasso/

     

    h0rtl4kk tarafından 13/Mar/17 14:07 tarihinde düzenlenmiştir
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    camarade
    ontedi
    ontedi's avatar
    Kayıt Tarihi: 04/Eylül/2005
    Erkek

    @h0rtl4kk hocam teşekkürler. Resim getirme işlemi de tamam fakat, for döngüsündeki en sonuncu resimi getiriyor.


    Matematikçi ve Yazılımcı. http://www.ontedi.com ve http://www.cizgi.site Siteme beklerim herkesi.
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    h0rtl4kk
    h0rtl4kk's avatar
    Kayıt Tarihi: 10/Şubat/2014
    Erkek

    Şuanki for içindeki kodları buraya yazabilirmisin ?

  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    camarade
    ontedi
    ontedi's avatar
    Kayıt Tarihi: 04/Eylül/2005
    Erkek

    Hocam yanyana getirdim. LinearLayout ekledim.

    Aslında yapmak istediğim yanyana 2'li şekilde gitmesi

    for içerisi

     

    String strResim_Kucuk = alKategoriler.get(i).get("resim_kucuk");
    ImageView ivResim_Kucuk = new ImageView(getApplicationContext());
    ivResim_Kucuk.setLayoutParams(new android.view.ViewGroup.LayoutParams(200,200));
    ivResim_Kucuk.setTop(10);
    ivResim_Kucuk.setMaxHeight(200);
    ivResim_Kucuk.setMinimumHeight(200);
    ivResim_Kucuk.setMaxWidth(200);
    ivResim_Kucuk.setMinimumWidth(200);
    Picasso.with(getApplicationContext()).load(strResim_Kucuk).into(ivResim_Kucuk);
    rlKatman.addView(ivResim_Kucuk);

    Resimler alt alta geliyor lakin biraz görsel açıdan güzelleştirmem gerekiyor. (2li sütunlar halinde.)


    Matematikçi ve Yazılımcı. http://www.ontedi.com ve http://www.cizgi.site Siteme beklerim herkesi.
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    h0rtl4kk
    h0rtl4kk's avatar
    Kayıt Tarihi: 10/Şubat/2014
    Erkek

    Şöyle birşey deneyebilirsin.

    RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(resimin x genişliği, resimin y genişliği);

    if for içerisindeki i çift sayı ise

    layoutParams.leftMargin = Ekranın yarısı / 2

    else if tek sayı ise

    layoutParams.rightMargin= Ekranın yarısı / 2

    Şu kod ile ekranın genişliğini alabilirsin (kodu eski projeden aldım sen yinede log verdirerek ne değer döndürdüğüne bak)

    Display display = getActivity().getWindowManager().getDefaultDisplay();
    Point size = new Point();
    display.getSize(size);
    int width = size.x;

    Bu şekilde yan yana dizebilirsin. Aşağı satıra geçmek içinde bir integer değer oluştur yüksekliği barındırsın. İki tane yan yana eklediğinde layoutParams.topMargin = integer değer + 200yükseklik ekle.

    Bende bu tarz bir uygulama yaptım fakat sayfalama yöntemi kullandım. Ekranda standart 6 imageview vardı. Resimi onlarda gösteriyordum. Sol sağ butonları ile sonra 6 veya önceki 6 taneyi çağırıp tekrar imageview'e yüklüyordum.

    Ayrıca GridView yada GridLayout'da kullanabilirsin dizme işlemi için ama hangisi olduğunu tam hatırlayamadım şuan.

  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Odd Emoji 3D
    BerkayCit
    BerkayCit's avatar
    Kayıt Tarihi: 25/Şubat/2011
    Erkek
    ontedi bunu yazdı

    Hocam yanyana getirdim. LinearLayout ekledim.

    Aslında yapmak istediğim yanyana 2'li şekilde gitmesi

    for içerisi

     

    String strResim_Kucuk = alKategoriler.get(i).get("resim_kucuk");
    ImageView ivResim_Kucuk = new ImageView(getApplicationContext());
    ivResim_Kucuk.setLayoutParams(new android.view.ViewGroup.LayoutParams(200,200));
    ivResim_Kucuk.setTop(10);
    ivResim_Kucuk.setMaxHeight(200);
    ivResim_Kucuk.setMinimumHeight(200);
    ivResim_Kucuk.setMaxWidth(200);
    ivResim_Kucuk.setMinimumWidth(200);
    Picasso.with(getApplicationContext()).load(strResim_Kucuk).into(ivResim_Kucuk);
    rlKatman.addView(ivResim_Kucuk);

    Resimler alt alta geliyor lakin biraz görsel açıdan güzelleştirmem gerekiyor. (2li sütunlar halinde.)

    gridlayout veya tablelayout kullanman sanırım en mantıklısı olacaktır. 

    table row da şöyle: 

    TableLayout tableLayout;

    TableRow satir;

    tableLayout = new TableLayout(this);  ile klasik oluşturduktan sonra,

    for içinde istediğin kadar row oluşturabilirsin -> satir = new TableRow(this);

    for un içine açacağın for ile de kolonları belirlersin ki sen 2 tane istiyorsun.

    imageview larında hepsinin weight ini eşit yaparsın ki eşit şekilde yerleşirler.

    gridlayout ile şöyle: 

    aynı şekilde instance oluşturduktan sonra, bunda özel olarak tablerow gibi bir şey yok ama.. onun yerine 

    setColumnCount ve setRowCount ile row ve column ların sayısını veriyorsun.

    bu sayıları verdikden sonra for ile veriyorsun ceryanı.. bunda iki tane for kullanmana gerek yok çünkü kendisi ayırıyor zaten.

    ve son olarak yine imageview larında hepsinin weight ini eşit yaparsın ki eşit şekilde yerleşirler.

     

    bunlardan daha farklı bir şekilde yapmak istiyorum dersende benim aklıma gelen çılgın yöntem mesela :D 

    bir tane linear layout oluşturuyorsun orientation u vertical oluyor,

    onun altına linear layout lar oluşturuyorsun orientation u horizontal olan. 2 li 2 li..

    imageview larında hepsinin weight ini eşit yaparsın ki eşit şekilde yerleşirler.

    2 li sıra doldukça horizontal olan linear layout eklemen gerekiyor ama sürekli :D 

    veya @h0rtl4kk  ın dediği gibide olur

    BerkayCit tarafından 13/Mar/17 16:37 tarihinde düzenlenmiştir

    havalı bir şeyler yazdığımı hayal edin
Toplam Hit: 2101 Toplam Mesaj: 7
android for döngüsü android dinamik resim oluşturma