탭(TabHost, TabWidget)

[code java]




[/code]
[code java]
public class TabTest extends TabActivity {

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.tab_test);

TabHost mTab = getTabHost();
Intent intent;

intent = new Intent().setClass(this, Tab01.class);
mTab.addTab(mTab.newTabSpec(“tag1”).setIndicator(“TAB1”).setContent(intent));

intent = new Intent().setClass(this, Tab02.class);
mTab.addTab(mTab.newTabSpec(“tag2”).setIndicator(“TAB2”).setContent(intent));

intent = new Intent().setClass(this, Tab03.class);
mTab.addTab(mTab.newTabSpec(“tag3”).setIndicator(“TAB3”).setContent(intent));

mTab.setCurrentTab(0);
}
}
[/code]

암시적 인텐트

[code java]
public void mOnClick(View v) {
Intent intent;
switch (v.getId()) {
case R.id.btnWeb:
intent = new Intent(Intent.ACTION_VIEW, Uri.parse(“http://www.yell.co.kr”));
startActivity(intent);
break;

case R.id.btnCall:
intent = new Intent(Intent.ACTION_DIAL, Uri.parse(“tel:010-1234-5678”));
startActivity(intent);
break;

case R.id.btnPhoto:
intent = new Intent(Intent.ACTION_VIEW);
String sd = Environment.getExternalStorageDirectory().getAbsolutePath();
Uri uri = Uri.fromFile(new File(sd + “/devil.jpg”));
intent.setDataAndType(uri, “image/jpeg”);
startActivity(intent);
break;

default:
break;
}
}
[/code]

액티비티간의 통신

[Codejava]
package yell.exam01;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;

public class Exam01Activity extends Activity {

TextView mText;
final static int ACT_EDIT = 0;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.listview);

mText = (TextView) findViewById(R.id.textView1);
}

public void modifyText(View v) {
switch (v.getId()) {
case R.id.btnModify:
Intent intent = new Intent(this, Exam01_modifyText.class);
intent.putExtra(“TextIn”, mText.getText().toString());
startActivityForResult(intent, ACT_EDIT);
break;

default:
break;
}
}

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (requestCode) {
case ACT_EDIT:
if (resultCode == RESULT_OK) {
mText.setText(data.getStringExtra(“TextOut”));
}
break;

default:
break;
}
}

public void showSubActivity(View v) {
Intent intent = new Intent(this, Exam01SubActivity.class);
startActivity(intent);
}
}
[/code]

[code java]
package yell.exam01;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;

public class Exam01_modifyText extends Activity {

EditText mEdit;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.modifytext);

mEdit = (EditText) findViewById(R.id.editText1);

Intent intent = getIntent();
String text = intent.getStringExtra(“TextIn”);
if (text != null) {
mEdit.setText(text);
}
}

public void mOnClick(View v) {
switch (v.getId()) {
case R.id.btnOk:
Intent intent = new Intent();
intent.putExtra(“TextOut”, mEdit.getText().toString());
setResult(RESULT_OK, intent);
finish();
break;

default:
setResult(RESULT_CANCELED);
finish();
break;
}
}
}
[/code]

이벤트 처리 > 익명 이너 클래스를 바로 사용

[code java]
package yell.exam01;

import android.app.Activity;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.Toast;

public class Exam01Activity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

LinearLayout linear = new LinearLayout(this);
linear.setOnTouchListener(new View.OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
if ( event.getAction() == MotionEvent.ACTION_DOWN ) {
Toast.makeText(Exam01Activity.this, “Touched!!!”, Toast.LENGTH_SHORT).show();
return true;
}
return false;
}
});
setContentView(linear);
}
}
[/code]

LinearLayout 객체를 생성한 뒤, 터치 리스너를 등록했다.

리스너에는 MotionEvent.ACTION_DOWN 즉, 화면 터치시 “Touched!!!”를 출력하도록 했다.

여러가지 이벤트 처리방법이 있는데 가장 간편한 방법이다.

jQuery UI Datepicker() / HTML Parsing Error – KB927917

사용자 삽입 이미지

HTML Parsing Error: Unable to modify the parent container element before the child element is closed (KB927917)

jQuery UI 에서 Datapicker 를 사용할 때 인터넷 익스플로러에서 위와 같은 오류가 나올 때가 있다.
항상 오류가 나타나는 것은 아니며,
몇몇 컴퓨터에서만 나타나는 현상이다

[소스]
<input type=”text” id=”sdate” name=”sdate” size=”12″ value=”” />
<script type=”text/javascript”>
<!–
    $(“#sdate”).datepicker({dateFormat: “yy-mm-dd”});
//–>
</script>

[해결방법]
<script type=”text/javascript”>
<!–
    $(function(){
        $(“#sdate”).datepicker({dateFormat: “yy-mm-dd”});
    });
//–>
</script>

Android SDK Tools Setup :: JDK not found

Java SE Development Kit (JDK) not found.

Android SDK relies on the Java SE Development Kit (JDK).
Go to http://java.sun.com > Downloads > Java SE > JDK to download adn install a JDK before continuing.

Note: A Java Runtime (JRE) is not enough to develop for Android.

Visit java.sun.com

==================================================================

안드로이드 SDK 설치시,
JDK가 설치되어 있음에도 Next 가 안되는 상황발생

해결방법(1)
http://codearetoy.wordpress.com/2010/12/23/jdk-not-found-on-installing-android-sdk/
위 링크로 이동해서 따라하면 된다
32bit로 설치하든지 zip 파일로 설치해 보길 권하고 있다.

해결방법(2)
Next > 버튼이 비활성화 되어 있다면 < Back 한번 눌렀다가 다시 와보면 Next >가 활성화 되어 있다.
설치를 진행하면 된다…. -_-;;;;;;;;;

사용자 삽입 이미지

퍼미션 변환

리눅스 설치후 보안을 위해서
퍼미션을 변경할 파일들

chmod 100 /usr/bin/top
chmod 660 /var/log/xferlog*
chmod 100 /usr/bin/w
chmod 660 /var/log/yum.log
chmod 100 /usr/bin/uptime
chmod 700 -R /etc/rc.d/
chmod 100 /usr/bin/last
chmod 700 -R /etc/cron.*
chmod 100 /usr/bin/free
chmod 640 /etc/fstab
chmod 100 /usr/bin/find
chmod 640 /etc/redhat-release
chmod 100 /bin/ping
chmod 640 /etc/proftpd.conf
chmod 100 /bin/netstat
chmod 640 /etc/crontab
chmod 100 /sbin/ifconfig
chmod 640 /etc/logrotate.conf
chmod 700 /proc/
chmod 640 -R /etc/xinetd.d/
chmod 700 /boot/
chmod 640 -R /etc/logrotate.d/
chmod 700 /usr/src/
chmod 640 /etc/lilo.conf
chmod 700 /usr/local/src/
chmod 640 -R /etc/snmp*
chmod 701 /www/
chmod 640 /etc/yum.conf
chmod 640 /var/log/dmesg
chmod 640 -R /etc/proftpd/
chmod 640 /var/log/ksyms*
chmod 640 /etc/snmpd.conf
chmod 640 /var/log/rpmpkgs*
chmod 640 /etc/rsyncd.conf
chmod 640 /var/log/snmpd.log*
chmod 640 /etc/xinetd.conf
chmod 660 /var/log/wtmp*
chmod 640 /etc/inetd.conf

ImageMagicK watermark(워터마크)

ImageMagicK 를 이용해서 이미지에 워터마크를 찍어보자

1. 설치
yum install imagemagick

2. 리사이즈
convert -resize 800×600 input.jpg output.jpg
convert -resize 800x input.jpg output.jpg
convert -reisze x600 input.jpg output.jpg
convert -resize 800×600! input.jpg output.jpg (느낌표(!) 사용시 강제로 사이즈 맞춤)

3. 워터마크
(투명도 30%, 이미지 가운데, watermark.png 이용)
composite -watermark 30% -gravity center watermark.png input.jpg output.jpg

이미지 클릭시 점선 안나오게 하기

HTML 코딩중 링크가 걸려있는 이미지를 클릭할 경우,
테두리에 점선이 생긴다.

이를 안나오게 하는 자바스크립트 코드이다.

autoBlur.js 로 만들어서
<script type=”text/javascript” src=”autoBlur.js”></script>
처럼 불러와도 되며, 공통으로 사용되는 js 파일에 첨부해도 된다.

function autoBlur()
{
    if ( event.srcElement.tagName==”A” || event.srcElement.TagName==”IMG” )
    {
        document.body.focus();
    }
}
document.onfocusin = autoBlur;

CentOS 5.5 네트워크 설치

CentOS 5.5 네트워크 설치방법입니다.
VMware Wrokstation 에서 설치하는 것을 기준으로 합니다.

1. http://ftp.daum.net/centos/5.5/isos/x86_64/

CentOs-5.5-x86_64-netinstall.iso 를 다운로드한다.



2. VMware CD-ROM 설정에서 다운받은 iso 파일을 마운트 시킨다



3. VMware 를 시작해준다



[F2-Options] 를 선택한다




네트워크 설치를 위해서
linux askmethod 를 입력한뒤 엔터를 눌러준다






언어/키보드 설정을 한다



네트워크 설치이므로 HTTP를 선택한다



각 환경에 맞게 값을 입력한다
공유기를 사용중이므로 DHCP에서 할당되는 값을 지정해줬다

192.168.123.190 / 255.255.255.0



Web site name : ftp.daum.net
CentOs directory : /centos/5.5/os/x86_64 (/os/ 부분을 주의!!!)

이후 진행은 별다른게 없다~