폰의 저장 공간(외부 SD 카드가 아닌 디바이스 자체의 저장 공간)의 

특정 디렉토리에 

특정 파일을 

저장하는 법.


특정 디렉토리는 MyDir

특정 파일 명은 MyImg.jpg라고 가정.


각 안드로이드 기기의 저장 공간에 대한 경로 명이 제조사 별로 상이하다.

따라서 저장 공간의 경로 명을 먼저 가져와야 된다. 

아래 메소드를 이용해서


String sdPath = 

    Environment.getExternalStorageDirectory().getAbsolutePath();


이렇게 얻어진 디바이스의 기본 경로에 내가 원하는 경로(MyDir)을 추가해 준다.


sdPath += "/MyDir";

이렇게 추가된 경로가 존재하지 않을 수 있기 때문에 존재 하지 않는다면 이 디렉토리를 새로 생성해 준다.


File file = new File(sdPath);

file.mkdirs(); //없으면 디렉토리 생성, 있으면 통과


이제 내가 생성하고자 하는 파일을 생성한다.


sdPath += "/MyImg.jpg";


이 파일도 존재하지 않는 파일이기에 File 클래스의 createNewFile() 메소드를 통해 새로 생성한다.


file = new File(sdPath);

try {

file.createNewFile();

Toast.makeText(mContext, "이미지 디렉토리 및 파일생성 성공~", 1).show();

} catch(IOException ie){

Toast.makeText(mContext, "이미지 디렉토리 및 파일생성 실패", 1).show();

}


아래는 소스 조각이다.


String sdPath = Environment.getExternalStorageDirectory().getAbsolutePath();

sdPath += "/MyDir";

File file = new File(sdPath);

file.mkdirs();

sdPath += "/MyImg.jpg";

file = new File(sdPath);

try {

file.createNewFile();

Toast.makeText(mContext, "이미지 디렉토리 및 파일생성 성공~", 1).show();

} catch(IOException ie){

Toast.makeText(mContext, "이미지 디렉토리 및 파일생성 실패", 1).show();

}





안드로이드 ProgressDialog 만들기


생상자가 아래와 같이 2가지 형태가 있다.


ProgressDialog(Context context)

ProgressDialog(Context context, int theme)


첫 번째는 디폴트 형태로 만드는 방식이고 두 번째는 다이알로그의 형태(배경 색, 모양, 크기...)를 두 번째 매개인자가 지정하는 형태(theme)대로 만드는 방식이다.


theme에는 다음과 같은 형태들이 있다.


//검정색 바탕에 흰 글씨(폭이 좁은 형태)

ProgressDialog pDialog = 

                new ProgressDialog(TestActivity.this, AlertDialog.THEME_HOLO_DARK); 

       

//흰색 바탕에 검정색 글씨(폭이 좁은 형태)

ProgressDialog pDialog = 

                   new ProgressDialog(TestActivity.this, AlertDialog.THEME_HOLO_LIGHT); 

       

//검정색 바탕에 흰 글씨(폭이 넓은 형태)

ProgressDialog pDialog = 

                 new ProgressDialog(TestActivity.this, AlertDialog.THEME_TRADITIONAL); 

       

//장비의 안드로이드 버전에 따른 형태(검정색 바탕)

ProgressDialog pDialog = 

         new ProgressDialog(TestActivity.this, AlertDialog.THEME_DEVICE_DEFAULT_DARK);

       

//장비의 안드로이드 버전에 따른 형태(흰색 바탕) - 아래 이미지와 같다

ProgressDialog pDialog = 

        new ProgressDialog(TestActivity.this, AlertDialog.THEME_DEVICE_DEFAULT_LIGHT);




이들 Theme은 AlertDialog 클래스에 정의되어 있다. 그런데 안드로이드 버전 23부터는 

대부분 deprecated되었다.

아래는 코드 조각이다.


ProgressDialog pDialog = new ProgressDialog(TestActivity.this);

pDialog.setCancelable(true);

//pDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); //직선 막대그래프 형태

pDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER); //원형 형태

//pDialog.setTitle("등록 상황"); //타이틀

pDialog.setMessage("잠시만 기다리세요...");

pDialog.show();





EditText의 값을 숫자로만 제한할 경우 xml에서 처리 법


      <EditText 

       android:id="@+id/won1"

           android:layout_width="0dp"

        android:layout_height="wrap_content"

        android:layout_weight="2"

        android:selectAllOnFocus="true"

        android:inputType="number"

            android:textSize="25sp"

        />





안드로이드에서 xml로 배열 선언하는 법


<?xml version="1.0" encoding="utf-8"?>

<resources>

    <string-array name="person">

        <item>홍길동</item>

        <item>고길동</item>

        <item>박길동</item>

        <item>김길동</item>

    </string-array>

</resources>


이 파일의 위치는 res/values 폴더 아래에 위치시키면 된다.


이클립스를 통해서 생성시 해당 프로젝트/res/values에서 마우스 우측 클릭 ⇒ 팝업창에서 New ⇒ 

Other ⇒ Android 항목의 하위 항목 중 Android XML Values File 선택 ⇒ 원하는 파일명 지정 및 작성













그 동안의 HTML(HTML4)은 웹에서 문서를 표현하기 위한 수단이었다면

이제 HTML5는 웹에서 프로그램(앱)을 개발하기 위한 방향을 지향점으로 하고 있다는 것,

앱 개발 플랫폼을 목표로 한 녀석이라는 것,

HTML5는 단순히 웹 기술을 지향하지 않고 모든 IT 기술이 웹으로 연결되는 것에 기반을 두고 있다는 점.

음... 이것이 HTML5와 관련된 비밀 아닌 비밀 쯤 되겠구나...


아래 글로부터의 작은 생각 조각이었습니다.


http://www.itdaily.kr/news/articleView.html?idxno=70674






'생각의 파편들' 카테고리의 다른 글

Android을 보다 깊고 폭 넓게 공부할려면  (0) 2015.12.17


프로그램을 개발하다 보면 


글자 색깔이나 배경색 등 


컬러 값을 16진수 값으로 설정해야 할 때가 있다.


컬러 값을 미세하게 조정해야 한다거나 등등...


이때 자주 사용하는 사이트이다.


http://www.w3schools.com/tags/ref_colorpicker.asp






LayoutInflater 객체를 얻는 3가지 방법

 

LayoutInflater는 레이아웃 XML 파일로부터(XML로 작성된 layout 파일로부터) 

그에 해당하는 View 객체를 획득하는데 유용하게 사용되는 클래스이다.

현재의 레이아웃 view에(setContentView()로 얻은 view에) 

동적으로 특정 layout XML 파일의 내용을 view에 추가하고 싶을 때 유용하게 사용이 된다.


다음과 같이 3가지 방식으로 객체를 얻을수 있다.


  • LayoutInflater inflater = 
                    (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE);

  • LayoutInflater inflater = Activity.getLayoutInflater();

  • LayoutInflater inflater = LayoutInflater.from(Context context);


내가 작성한 TextView를 AlertDialog에 채용해서 내가 원하는 형태로 AlertDialog를 보여주고자 할 경우 

아래와 같이 LayoutInflater를 이용하면 된다.


alert_text.xml의 내용이 다음과 같을 경우 


<?xml version="1.0" encoding="utf-8"?>

<TextView xmlns:android="http://schemas.android.com/apk/res/android"

    android:id="@+id/spnTxt"

    android:layout_width="fill_parent"

    android:layout_height="wrap_content"

    android:padding="15dp"

    android:textColor="#FF99FF"

    android:textSize="20sp"

    />


이 레이아웃(alert_text.xml)을 AlertDialog의 view로 사용 할려면 LayoutInflater를 이용해서 다음과 같이 하면 된다.


LayoutInflater inflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);


TextView spnTxt = (TextView)inflater.inflate(R.layout.alert_text, null);

spnTxt.setText("필요한 문자열...");


AlertDialog.Builder adb = new AlertDialog.Builder(this);

adb.setView(spnTxt);

adb.setPositiveButton("확인", new DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int which) {

//원하는 기능

}

)};


adb.show();





안드로이드에서 JSON으로 보낸 데이터를 PHP에서 수신하기


$value = json_decode() 함수를 이용한다.


$value = 

     json_decode(file_get_contents('php://input'));



입력된 JSON 값을 출력해 볼려면


$value = json_encode($value);

echo("JSON 데이터 : ".$value);





CSS 텍스트에 밑줄, 가운데 줄, 윗 줄 표시하기


▶ text-decoration 속성 

  •   개념 : CSS에서 텍스트에 밑줄, 가운데줄, 윗줄 표시하기위한 속성
  •   none : 기존에 적용되었던 decoration을 제거
  •   underline : 밑줄 긋기
  •   overline : 텍스트의 윗쪽에 line 긋기
  •   line-through : 텍스트 가운데 line 긋기(취소 선)
  •   blink : 텍스트 깜빡이게(시각적으로 혼란스럽게 하는 면이 있어 잘 사용 안함)


예)


h2 {

   text-decoration: underline;

}


.info {

   text-decoration: line-through;

}





xml에 마크업 문자 넣기(글꼴 속성: 굵기, 이탤릭...)


안드로이드는 HTML처럼 XML 문자열에서 기본적인 마크업 문자를 사용하여 스팬 문자를 만들수 있는 기능을 아래와 같이 제공한다.


  •  <b>굵게 강조</b>
  •  <i>이탤리체</i>
  •  <tt>프로그램용 MonoSpace 폰트</tt>
  •  <sup>윗 첨자</sup>
  •  <sub>아래 첨자</sub>
  •  <u>아래 밑줄</u>
  •  <strike>취소선</strike>


<TextView 

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:gravity="center_horizontal"

android:text="@string/styled_text"/>


strings.xml의 내용


<?xml version="1.0" encoding="utf-8"?>

<resources>

    <string name="hello">Hello World, AAAActivity!</string>

    <string name="styled_text">평범(plain), \n<b>굵게(bold)</b>, \n<i>이탤릭체(italic)</i>, \n<b>                          <i>여긴 굵게 이탤릭체</i></b>

    </string>

    <string name="app_name">안드로이드 리소스 샘플 프로첵트</string>

</resources>






+ Recent posts