Nov 18, 2014

Change keymap

The tools to manipulate the keyboard layout on the virtual consoles are loadkeys, dumpkeys and showkeys. Read their manpages and inform yourself about their intricacies.

Note that these tools only work in a virtual console, not in a terminal emulator in X.

Save your current keyboard layout:
$ dumpkeys > backup.kmap

In case something goes wrong you might be able restore your keymap using the command:
$ sudo loadkeys backup.kmap
If the keyboard is so messed up that you can't even do this then your only option not involving ancient kernel magic is to reboot.

Check which keycodes are assigned to your keys:
$ showkey
Now press the ESC key and the CAPSLOCK key. The keycodes should show up on the screen. Note the keycodes. On my system the ESC has the keycode 1 and CAPSLOCK has the keycode 58. showkey will terminate after 10 seconds of inactivity.

Note the names of the ESC and CAPSLOCK keys from dumpkeys:

$ dumpkeys | grep 1
...
keycode   1 = Escape
...
$ dumpkeys | grep 58
...
keycode  58 = CtrlL_Lock
...
Note the keymap line from dumpkeys:

$ dumpkeys | head -1
keymaps 0-127

Create a keymap file which switches ESC and CAPSLOCK:
keymaps 0-127
keycode   1 = CtrlL_Lock
keycode  58 = Escape

Load the keymap:
$ sudo loadkeys swap_esc_capslock.kmap



original link

Nov 25, 2013

기기의 DPI 확인

DisplayMetrics displayMetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
Log.d("TEST", "DPI = " + displayMetrics.densityDpi);

Oct 30, 2013

android(java) 파일 저장 후 리부팅 시 저장안되어 있는 현상

android에서 FileOutputStream 의 write();,  flush(); 했는데도 리부팅 시 간헐적으로 파일이 생성되지 않았거나 파일 내 데이터가 변하지 않을 때가 있다.

FileOutputStream 의 flush(); 가 버퍼를 비우는 기능만 수행하고 실제 physical device에 데이터를 저장하지 않아 파일에 데이터를 쓰기까지의 딜레이가 생기는 것이다.

이 때 fos.getFD().sync();의 메서드로 파일시스템 내부의 캐쉬를 모두 physical device로 저장한다.



FileOutputStream fos = this.openFileOutput(filename, Context.MODE_PRIVATE);
fos.write(obj.toString().getBytes());
fos.flush();
fos.getFD().sync();
fos.close();

Oct 7, 2013

Shuffle 기능


 List< Integer > numbers;
Collections.shuffle( numbers );

// 0부터 6번째 인덱스 데이터 가지고 옴
        List< Integer > winningCombination = numbers.subList( 0 , 6 );

// 정렬
Collections.sort( winningCombination );

Sep 28, 2012

TextView 왼쪽 아이콘

android:drawableLeft="@drawable/ic_launcher"

or

TextView tv; 
Drawable icon; 


Bitmap b = Bitmap.createScaledBitmap(((BitmapDrawable) icon).getBitmap(), 120, 120, false);
icon = new BitmapDrawable(b); 
icon.setBounds(0, 0, icon.getIntrinsicWidth(), icon.getIntrinsicHeight());

tv.setTextSize(12); 
tv.setGravity(Gravity.CENTER); 
tv.setCompoundDrawables(icon, null, null, null);