25 Haziran 2015 Perşembe

Androidde bitmap resmi yuvarlak ve borderli yapmak


 /**
  * Resmi yuvarlak ve borderli hale çevirir
  * @param bitmap çevirilecek resim
  * @param borderWidth border genişliği
  * @return
  */
 private Bitmap getBitmapWithBorder(Bitmap bitmap,
   int borderWidth) {
  if (bitmap == null || bitmap.isRecycled()) {
   return null;
  }

  final int width = bitmap.getWidth() + borderWidth;
  final int height = bitmap.getHeight() + borderWidth;

  Bitmap canvasBitmap = Bitmap.createBitmap(width, height,
    Bitmap.Config.ARGB_8888);
  BitmapShader shader = new BitmapShader(bitmap, TileMode.CLAMP,
    TileMode.CLAMP);
  Paint paint = new Paint();
  paint.setAntiAlias(true);
  paint.setShader(shader);

  Canvas canvas = new Canvas(canvasBitmap);
  float radius = width > height ? ((float) height) / 2f
    : ((float) width) / 2f;
  canvas.drawCircle(width / 2, height / 2, radius, paint);
  paint.setShader(null);
  paint.setStyle(Paint.Style.STROKE);
  paint.setColor(getResources().getColor(R.color.darker_gray));
  paint.setStrokeWidth(borderWidth);
  canvas.drawCircle(width / 2, height / 2, radius - borderWidth / 2,
    paint);
  return canvasBitmap;
 }

17 Haziran 2015 Çarşamba

Androidde bir layoutun bütün childlarını elde etme

private ArrayList getAllChildren(View v) {

     if (!(v instanceof ViewGroup)) {
         ArrayList viewArrayList = new ArrayList();
         viewArrayList.add(v);
         return viewArrayList;
     }

     ArrayList result = new ArrayList();

     ViewGroup viewGroup = (ViewGroup) v;
     for (int i = 0; i < viewGroup.getChildCount(); i++) {

         View child = viewGroup.getChildAt(i);

         ArrayList viewArrayList = new ArrayList();
         viewArrayList.add(v);
         viewArrayList.addAll(getAllChildren(child));

         result.addAll(viewArrayList);
     }
     return result;
 }

Androidde yeni bir web sayfası açma

Yeni bir web sayfası açarken geri dönüldüğünde IE veya başka sayfalarda kalmaması için
Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("www.google.com"));
  browserIntent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
  browserIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);
  browserIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_MULTIPLE_TASK);
  startActivityForResult(browserIntent, FINISH_ACTIVITY);

16 Kasım 2013 Cumartesi

Assemblyde fibonacci

PAGE 60,80
STSG SEGMENT PARA STACK 'STACK'
 DW 12 DUP(0)
STSG ENDS
DATASG SEGMENT PARA 'DATA'
 ILK DW 1
 IKI DW 1
 UC DW ?
 BULUNCAK DW 10
DATASG ENDS
CODESG SEGMENT PARA 'CODE'
ASSUME CS:CODESG,SS:STSG,DS:DATASG
MAIN PROC FAR
 PUSH DS
 XOR AX,AX
 PUSH AX
 MOV AX,DATASG
 MOV DS,AX
 MOV AX,ILK
 MOV BX,IKI
 MOV CX,BULUNCAK
 SUB CX,2;dongumuz 3'ten sayiya eşit olana kadar döner
L1:
 MOV UC,AX
 ADD UC,BX
 MOV AX,BX
 MOV BX,UC 
 LOOP L1
 MOV AX,UC
RETF
MAIN ENDP
CODESG ENDS
END MAIN



LST Çıktısı :
Microsoft (R) Macro Assembler Version 5.00                  11/17/13 04:51:25
                                                             Page     1-1


                PAGE 60,80
 0000                STSG SEGMENT PARA STACK 'STACK'
 0000  000C[                DW 12 DUP(0)
       0000          
             ]  
              
 0018                STSG ENDS
 0000                DATASG SEGMENT PARA 'DATA'
 0000  0001                ILK DW 1
 0002  0001                IKI DW 1
 0004  ????                UC DW ?
 0006  000A                BULUNCAK DW 10
 0008                DATASG ENDS
 0000                CODESG SEGMENT PARA 'CODE'
                ASSUME CS:CODESG,SS:STSG,DS:DATASG
 0000                MAIN PROC FAR
 0000  1E                PUSH DS
 0001  33 C0                XOR AX,AX
 0003  50                PUSH AX
 0004  B8 ---- R            MOV AX,DATASG
 0007  8E D8                MOV DS,AX
 0009  A1 0000 R            MOV AX,ILK
 000C  8B 1E 0002 R            MOV BX,IKI
 0010  8B 0E 0006 R            MOV CX,BULUNCAK
 0014  83 E9 02                SUB CX,2
 0017                L1:
 0017  A3 0004 R            MOV UC,AX
 001A  01 1E 0004 R            ADD UC,BX
 001E  8B C3                MOV AX,BX
 0020  8B 1E 0004 R            MOV BX,UC    
 0024  E2 F1                LOOP L1
 0026  A1 0004 R            MOV AX,UC
 0029  CB            RETF
 002A                MAIN ENDP
 002A                CODESG ENDS
                END MAIN
Microsoft (R) Macro Assembler Version 5.00                  11/17/13 04:51:25
                                                             Symbols-1


Segments and Groups:

                N a m e             Length     Align    Combine Class

CODESG . . . . . . . . . . . . .      002A    PARA    NONE    'CODE'
DATASG . . . . . . . . . . . . .      0008    PARA    NONE    'DATA'
STSG . . . . . . . . . . . . . .      0018    PARA    STACK    'STACK'

Symbols:           

                N a m e             Type     Value     Attr

BULUNCAK . . . . . . . . . . . .      L WORD    0006    DATASG

IKI  . . . . . . . . . . . . . .      L WORD    0002    DATASG
ILK  . . . . . . . . . . . . . .      L WORD    0000    DATASG

L1 . . . . . . . . . . . . . . .      L NEAR    0017    CODESG

MAIN . . . . . . . . . . . . . .      F PROC    0000    CODESG    Length = 002A

UC . . . . . . . . . . . . . . .      L WORD    0004    DATASG

@FILENAME  . . . . . . . . . . .      TEXT  DEM      


     33 Source  Lines
     33 Total   Lines
     14 Symbols

  51062 + 461290 Bytes symbol space free

      0 Warning Errors
      0 Severe  Errors

Assembly 80x86 dizi içindeki en büyük eleman

PAGE 60,80
TITLE ENBUYUK
STACKSG SEGMENT PARA STACK 'STACK'
    DW 32 DUP(0)
STACKSG    ENDS
DATASG SEGMENT PARA 'DATA'
    ADIZI DW 13,81,11,22          ;Dizi Elemanlari
    SZ DW 4          ;Dizinin Sizeini tutar
    ENBUYUK DW (0)     ;En buyuk sayi
DATASG    ENDS
CODESG SEGMENT PARA 'CODE'
    ASSUME CS:CODESG,DS:DATASG,SS:STACKSG
MAIN PROC FAR
    PUSH DS
    XOR AX,AX
    PUSH AX
    MOV AX,DATASG
    MOV DS,AX
    MOV AX,ENBUYUK ;AX e en buyuk sayisi atanır
    MOV CX,SZ ; CX e size atanır
    LEA SI,ADIZI; ADIZI  degiskeninin adresi SI ya atanır
L1:    
    MOV DI,[SI] ;DI ya adresteki değişken atanır ve büyük,küçük kontrol edilir.
        CMP DI,AX
        JA BUYUKMUS
        JMP EXIT
BUYUKMUS:
    MOV AX,DI;buyukse AX registerina DI daki değer atanır
    MOV ENBUYUK,AX
EXIT:   
    ADD SI,2;DW olduğundan dolayı dizi elemanlarımız 2 2 artmaktadır
    LOOP L1;CX(SZ değerinde) 0 olana kadar döner
    RETF
MAIN ENDP
CODESG ENDS
    END MAIN

27 Eylül 2013 Cuma

StringSearch

Bir string içindeki bir kelimenin kaç kere bulunduğunu döndürür.
static void Main(string[] args)
        {
            string aranacak = "Buralar Eskiden Hep Otlakmis";
            string aranan = "Ot";
            int sayi = StringSearch(aranacak, aranan);
            Console.WriteLine(sayi.ToString());
            Console.ReadKey();
        }
        static int StringSearch(string aranacak, string aranan)
        {
            int toplam = 0;
            int a = 0;
            aranan = aranan.ToLower();
            aranacak = aranacak.ToLower();
            for (int i = 0; i < aranacak.Length; i++)
            {
                if (aranacak[i] == aranan[a])
                {
                    if (a == aranan.Length - 1)
                    {
                        a = 0;
                        toplam += 1;
                    }
                    else
                        a++;
                }
                else
                    a = 0;
            }
            return toplam;
        }

Stringdeki katsayıları ayırıp çarpmak

bir stringdeki bütün sayıları birbiriyle çarpan basit bir algoritma :) Aldığım sonuçlar :
1) 87e5x34t = 87 * 5 * 34 =14790
2) 74582ex0e5 = 74582*0*5 = 0
3)74582ex05e5 = 1864550 (05 in yazımı hatalı)
4)12ex420k5i7 = 72*420*5*7 = 176400
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace paralel1
{
    class Program
    {
        static void Main(string[] args)
        {
            string asd = "87e5x34t";
            List list = new List();
            Console.WriteLine("Sonuc : {0}", StringKatsayi(asd,list));
            for (int i = 0; i < list.Count; i++)
            {
                Console.WriteLine(String.Format("{0} .ci deger : {1}", i + 1, list[i]));
            }
            Console.ReadKey();
        }
      static  int StringKatsayi(string yazi,List liste)
        {
            int anatoplam = 1;
            int toplam = 0;
            int katsayi = 1;
            int tmp = 1;
            char cr;
            bool gordumu = false;
            for (int i = yazi.Length - 1; i >= 0; i--)
            {
                cr = yazi[i];
                if (cr > 47 && cr < 58)
                {
                    tmp = cr - 48;
                    toplam += katsayi * tmp;
                    katsayi *= 10;
                    gordumu = true;
                }
                else
                {
                    if (gordumu == true)
                    {
                        liste.Add(toplam);
                        katsayi = 1;
                        toplam = 0;
                        gordumu = false;
                    }
                }
            }
            if (gordumu == true)
                liste.Add(toplam);
            for (int i = 0; i < liste.Count; i++)
            {
                anatoplam *= liste[i];
            }
            return anatoplam;
        }
    }
}