/** * 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; }
Programlama Günlüğüm
25 Haziran 2015 Perşembe
Androidde bitmap resmi yuvarlak ve borderli yapmak
17 Haziran 2015 Çarşamba
Androidde bir layoutun bütün childlarını elde etme
private ArrayListgetAllChildren(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
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"; Listlist = 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; } } }
Kaydol:
Kayıtlar (Atom)