/**
* 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";
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;
}
}
}
Kaydol:
Yorumlar (Atom)