반응형
웹프로그래밍을 하다보면 회원가입이나 프로필 등등에서 사진을 등록하고 바로보고싶을경우가 있다. 기본적으로 IE와 크롬에서 현재는 fakepath로 막아놓아서 파일경로를 읽어들일수없는데, 아래와 같은 방법을 사용하면 사진을 등록후 바로 미리보기 이미지화시킬수있다. 아래는 javascript코드이다.
function previewImage(targetObj, View_area) {
	var preview = document.getElementById(View_area); //div id
	var ua = window.navigator.userAgent;

	//ie일때(IE8 이하에서만 작동)
	if (ua.indexOf("MSIE") > -1) {
		targetObj.select();
		try {
			var src = document.selection.createRange().text; // get file full path(IE9, IE10에서 사용 불가)
			var ie_preview_error = document
					.getElementById("ie_preview_error_" + View_area);

			if (ie_preview_error) {
				preview.removeChild(ie_preview_error); //error가 있으면 delete
			}

			var img = document.getElementById(View_area); //이미지가 뿌려질 곳

			//이미지 로딩, sizingMethod는 div에 맞춰서 사이즈를 자동조절 하는 역할
			img.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"
					+ src + "', sizingMethod='scale')";
		} catch (e) {
			if (!document.getElementById("ie_preview_error_" + View_area)) {
				var info = document.createElement("

"); info.id = "ie_preview_error_" + View_area; info.innerHTML = e.name; preview.insertBefore(info, null); } } //ie가 아닐때(크롬, 사파리, FF) } else { var files = targetObj.files; for (var i = 0; i < files.length; i++) { var file = files[i]; var imageType = /image.*/; //이미지 파일일경우만.. 뿌려준다. if (!file.type.match(imageType)) continue; var prevImg = document.getElementById("prev_" + View_area); //이전에 미리보기가 있다면 삭제 if (prevImg) { preview.removeChild(prevImg); } var img = document.createElement("img"); img.id = "prev_" + View_area; img.classList.add("obj"); img.file = file; img.style.width = '150px'; img.style.height = '200px'; preview.appendChild(img); if (window.FileReader) { // FireFox, Chrome, Opera 확인. var reader = new FileReader(); reader.onloadend = (function(aImg) { return function(e) { aImg.src = e.target.result; }; })(img); reader.readAsDataURL(file); } else { // safari is not supported FileReader //alert('not supported FileReader'); if (!document.getElementById("sfr_preview_error_" + View_area)) { var info = document.createElement("p"); info.id = "sfr_preview_error_" + View_area; info.innerHTML = "not supported FileReader"; preview.insertBefore(info, null); } } } } }

HTML BODY영역에서 file에 등록하면 지정한 영역에 뿌려줄수있다.
onchange속성을 사용하여 파일이 등록되거나 변경될 시에 바로바로 적용가능하다.
onchange="previewImage(this,'영역아이디')


반응형

'IT관련 > JavaScript' 카테고리의 다른 글

Servlet alert 사용  (0) 2014.06.21
PrintWriter 사용시 인코딩 (한글깨짐)  (0) 2014.06.21
SELECTBOX OPTION SCRIPT  (0) 2014.06.13
블로그 이미지

Mr.비타민

,
반응형

JSP/JAVA-Script/Servlet을 사용하다보면

 

JSP페이지에서가 아닌 서블릿에서 데이터핸들링하다가 경고창을 띄워주게 하고싶을때가 있다

그럴때 사용할수 있는 것이

Servlet에서 PrintWriter를 사용하여 HTML형식으로 출력하는 방법이다.

 

 

response.setCharacterEncoding("UTF-8");
response.setContentType("text/html; charset=UTF-8");

PrintWriter out = response.getWriter();

out.println(""); 
out.close();
이렇게 하면 서블릿에서도 경고창을 띄워줄수있다
반응형

'IT관련 > JavaScript' 카테고리의 다른 글

이미지 파일 미리보기 기능구현  (0) 2014.08.21
PrintWriter 사용시 인코딩 (한글깨짐)  (0) 2014.06.21
SELECTBOX OPTION SCRIPT  (0) 2014.06.13
블로그 이미지

Mr.비타민

,
반응형

PrintWriter out = response.getWriter();

를 사용할때 페이지자체가 한글깨짐현상이 발생을 하게된다.

해결방법으로 간단하게

 

response.setCharacterEncoding("UTF-8");
response.setContentType("text/html; charset=UTF-8");

를 위에 코딩해준후에

 

out.println("내용");

 

을 사용하게되면 페이지가 한글이깨지않는다.

반응형

'IT관련 > JavaScript' 카테고리의 다른 글

이미지 파일 미리보기 기능구현  (0) 2014.08.21
Servlet alert 사용  (0) 2014.06.21
SELECTBOX OPTION SCRIPT  (0) 2014.06.13
블로그 이미지

Mr.비타민

,
반응형


1. jQuery로 선택된 값 읽기

 

$("#selectBox option:selected").val();

$("select[name=name]").val();

 

2. jQuery로 선택된 내용 읽기

 

$("#selectBox option:selected").text();

 

3. 선택된 위치

 

var index = $("#test option").index($("#test option:selected"));

 

4. Addoptions to the end of a select

 

$("#selectBox").append("<option value='1'>Apples</option>");

$("#selectBox").append("<option value='2'>After Apples</option>");

 

5. Addoptions to the start of a select

 

$("#selectBox").prepend("<option value='0'>Before Apples</option>");

 

6. Replaceall the options with new options

 

$("#selectBox").html("<option value='1'>Some oranges</option><option value='2'>MoreOranges</option>");

 

7. Replaceitems at a certain index

 

$("#selectBox option:eq(1)").replaceWith("<option value='2'>Someapples</option>");

$("#selectBox option:eq(2)").replaceWith("<option value='3'>Somebananas</option>");

 

8. 지정된 index값으로 select 하기

 

$("#selectBox option:eq(2)").attr("selected", "selected");

 

9. text 값으로 select 하기

 

$("#selectBox").val("Someoranges").attr("selected", "selected");

 

10. value값으로 select 하기

 

$("#selectBox").val("2");

 

11. 지정된 인덱스값의 item 삭제

 

$("#selectBox option:eq(0)").remove();

 

12. 첫번째 item 삭제

 

$("#selectBox option:first").remove();

 

13. 마지막 item 삭제

 

$("#selectBox option:last").remove();

 

14. 선택된 옵션의 text 구하기

 

alert(!$("#selectBox option:selected").text());

 

15. 선택된 옵션의 value 구하기

 

alert(!$("#selectBox option:selected").val());

 

16. 선택된 옵션 index 구하기

 

alert(!$("#selectBox option").index($("#selectBox option:selected")));

 

17. SelecBox 아이템 갯수 구하기

 

alert(!$("#selectBox option").size());

 

18. 선택된 옵션 앞의 아이템 갯수

 

alert(!$("#selectBox option:selected").prevAl!l().size());

 

19. 선택된 옵션 후의 아이템 갯수

 

alert(!$("#selectBox option:selected").nextAll().size());

 

20. Insertan item in after a particular position

 

$("#selectBox option:eq(0)").after("<option value='4'>Somepears</option>");

 

21. Insertan item in before a particular position

 

$("#selectBox option:eq(3)").before("<option value='5'>Someapricots</option>");

 

22. Gettingvalues when item is selected

 

$("#selectBox").change(function(){

           alert(!$(this).val());

           alert(!$(this).children("option:selected").text());

});


출처 : http://blog.daum.net/twinsnow/124

반응형

'IT관련 > JavaScript' 카테고리의 다른 글

이미지 파일 미리보기 기능구현  (0) 2014.08.21
Servlet alert 사용  (0) 2014.06.21
PrintWriter 사용시 인코딩 (한글깨짐)  (0) 2014.06.21
블로그 이미지

Mr.비타민

,
반응형


안드로이드 개발을 하다보면 화면전환이 기본설정으로만 되어 있어서 밋밋함이 느껴질때가 많다.

그래서 좀 세련되면서도 이쁘고 깜찍하게(?).... 애니메이션효과를 넣을 수가 있다.


액티비티를 Intent에 담아서 전환할때 한줄소스와 애니메이션 xml파일만 있다면 너도 나도 멋지게 액비티비 전환을 구현가능하다.


일단 기본적으로 

Intent intent = new Intent(getApplicationContext(), FirstGame.class);
startActivity(intent);


기본적인 액티비티 전환방법이다!! 여기에다가 overridePendingTransition메소드 하나만 넣어주게되면 A->B로 전환될때 애니메이션이 들어가게된다.

 
Intent intent = new Intent(getApplicationContext(), FirstGame.class);
startActivity(intent);
overridePendingTransition(R.anim.fade, R.anim.cycle_7);


fade는 희미하게 조금씩 밝아지면서 cycle은 A->B로 갈때와 B->A로 갈때 모두 적용하게 만들수 있다. 

 애니메이션 xml은 파일은 첨부에다가 넣어두겠다!


xml폴더에 있는 효과들은 아마 영어를 해석한다면 사용하는데 큰 무리가 없을 것이다.

폴더의 위치는 res폴더에 넣어서 리소스로서 사용하면 된다.



anim.zip



반응형
블로그 이미지

Mr.비타민

,
반응형

안드로이드 어플을 개발하다보면 진동효과를 사용하고 싶을때가 있다.


기본적으로 모바일기기이다 보니 사운드효과보다는 손으로 잡고잇기에 진동효과가 더 감지하는 데에는 좋다.


이미 안드로이드에서는 그 방법에 대한 클래스가 만들어져있으므로 우리는 객체를 만들고 사용하기만 하면 된다.


Vibrator라는 클래스로부터 객체를 만들어서 거기에 맞는 사용법에 따라 사용하면된다.

사용법은 간단하다.!!!


아래처럼 진동값

Vibrator vibe = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);   

vibe.vibrate(값);                                                   //( 값 / 1000)초 동안 진동이 울린다.     

//vibe.vibrate(패턴, 0)                                          //패턴(진동,무진동)에 맞게 설정가능


기본적인 소스사용법은 이렇지만 빼먹으면 안돼는 설정이 있는데

AndroidManifest.xml에서 permission권한을 주어야한다.

<uses-permission android:name="android.permission.VIBRATE"></uses-permission>


이렇게 설정이 완료되면 어플에서도 개발하여 사용할 수 있다.


반응형
블로그 이미지

Mr.비타민

,
반응형

Thread를 이용하여 타이머를 만드는 방법중인 하나인 (마지막시간-시작한시간)을 계산하여 출력하는 방법을 사용해보려고한다.

 

Thread t = new Thread(new Runnable() {
	public void run() {
         //첫 시작한 현재시간
		final long start = System.currentTimeMillis();
         //시간포맷팅을 위한 포맷설정
		final SimpleDateFormat sdf = new SimpleDateFormat("mm:ss:SSS");
		
		while (!(t.isInterrupted())) {
			runOnUiThread(new Runnable() {
				public void run() {
                    //쓰레드가 돌때마다 계속 현재시간 갱신
					long end = System.currentTimeMillis();
                    //진행된시간을 계산하여 포맷에 맞게 TextView에 뿌리기
					dc.setText(sdf.format(end - start).substring(0, 8));
				}
			});
            //0.01초마다 Thread돌리기
			SystemClock.sleep(10);
		}
	}
});
t.start();
 이렇게 하게되면 00:00:00 의 형식으로 뷰에 뿌릴수가 있다
반응형
블로그 이미지

Mr.비타민

,
반응형

흔히 Java를 사용하다가 안드로이드로 넘어오게되면 Thread.stop(), Thread.destroy가 안먹히게 된다.

 

그래서 안드로이드에서는 interrupt()를 사용하게 되는데 이것마저 적용이 안될때가 있다.

 

그럴때는 Thread의 isInterrupt()를 while의 조건으로 넣어주면 interrupt()메소드를 실행했을때 멈추게 할수 있다.

 

Thread t = new Thread(new Runnable() {
	public void run() {
		while (!(t.isInterrupted())) {//Interrupt메소드가 호출되면 중지
			runOnUiThread(new Runnable() {
				public void run() {
					//Thread로 UI를 변경하고자한다면 
				}
			});
			SystemClock.sleep(10);
		}
	}
});
사용하고자하는 곳에서 Interrupt()를 호출하게 된다면 중지되게 된다.
반응형
블로그 이미지

Mr.비타민

,
반응형

티스토리 초대받고 글 몇개 깨짝거리다가 2년반만에..다시돌아왓네요...하ㅋ


처음엔 열심히하겟다고.ㅎ 마음먹었었는데... 이래저래 일이 많고 잊고 지내다가.ㅠ


이제야 다시 돌아옴..ㅠ


조금조금씩 관리하면서 필요한부분 메모할부분 포스트 및 블로깅을 시작해야겟네요!!

반응형

'다이어리' 카테고리의 다른 글

첫 글이네요...  (3) 2011.10.07
블로그 이미지

Mr.비타민

,
반응형


1. JDK 설치하기

2. 안드로이드 SDK 설치하기


----------------------------------------------------------------------------

2. 안드로이드 SDK 설치하기


안드로이드 SDK에는 개발에 필요한 API와 에뮬레이터가 포함되어 있다.

최근 안드로이드SDK에는 이클립스도 포함되어 있어서 따로 이클립스를 설치할 필요가 없다.

Android SDK-Bundle이라고해서 기본적으로 이클립스에 셋팅해야할 부분이 자동적으로 다되어있다.

http://developer.android.com/sdk/index.html

 

자신의 OS버전에 맞는것을 선택후 다운로드!!



압축을 풀고 이클립스 폴더에있는 이클립스를 실행시킨다.!

처음에뜨는 workspace는 작업할 위치로 설정해주면되고, 실행하여 들어가게되면

위에 메뉴아이콘중에 빨간표시되있는것을 선택하면 안드로이드 디바이스 버전에 맞게 API를 설치할수있다.



원하는 버전을 다운받은후! New - Android Project 를 만들어서 개발하면 된다!

반응형

'IT관련 > MobileWeb' 카테고리의 다른 글

안드로이드&웹앱&모바일웹앱 작업환경구축(JDK)  (0) 2014.05.16
블로그 이미지

Mr.비타민

,