지식메모

반응형



안드로이드 EditText 에디트텍스트 값 남겨두기



다음 액티비티로 넘어갔다가 다시 전 액티비티로 돌아올 때 입력했던 EditText 값을 그대로 놔두고 싶다면

intent 호출 부분에



Intent intent = new Intent(this, SecondActivity.class);

startActivity(intent);

finish();


 finish(); 이걸 지워주면 된다.

액티비티 종료 코드를 없애주면 되는 것이다.

난 예제만 보고 따라하느라 그냥 썼다가 값이 안 남길래 삽질을 했었다.

알고보니 간단한 거였다.. 





반응형
반응형

 

 

 

ObjectNode 와 JsonNode의 차이가 뭔지 몰랐는데 이런 차이라고 한다.

 

 

Json으로 나타난 정보에서

 

[ ]

표시로 시작되는 건 배열이기 때문에 Arraynode 이며

 

{ }

표시로 시작하는 건 Json 값이기 때문에 JsonNode 이다

 

 

그런데 JsonNode는 값을 불러올 수는 있지만 넣을 수는 없기 때문에

 

값을 넣기 위해서는 ObjectNode를 사용한다.

 

ObjectNode는 값을 불러오고 넣을 수도 있다.

 

 

요약하면

 

JsonNode 는 값을 읽을 수만 있고 ObjectNode는 값을 읽고 쓸 수 있다.

 

Json 사용법 링크

http://yonoo88.tistory.com/322

 

 

 

 

 

 

 

 

 

 

 

 

반응형

'지식메모 > JAVA' 카테고리의 다른 글

숫자 천단위 콤마 입력하기  (0) 2014.09.25
Json의 이해  (0) 2013.11.05
대문자 소문자 서로 변환하기  (0) 2013.10.08
java 문자열 구분자로 자르기  (0) 2013.10.02
mp3 ID3 v2 태그 파싱하기  (3) 2013.08.27

vim 문자열 찾기

2013. 9. 2. 21:08
반응형



vim 처음 실행 후 

또는 편집 중이었다면 ESC를 눌러 편집모드를 빠져 나온 후


/찾을 문자열

?찾을 문자열


을 하면 찾을 수 있다. 

예를 들어 apple을 찾는다면


/apple

?apple


이라고 치면 apple 문자열을 찾는다.


여기서 / 는 위에서 아래로

? 는 아래에서 위로 찾는다. 필요에 따라 알맞게 쓰면 된다.


검색결과를 더 보려면 

다음 문자열 찾기인 n 을 누르면 되고

역방향으로 찾으려면 대문자 N 을 누르면 된다.






반응형
반응형



티스토리 기본 글자 간격은 왠지 빽빽하게 보여서 답답한 감이 있었다.


그래서 글자간격을 수정해보았다.


글자 간격을 설정하기 전의 모습

 


수정을 하기위해 관리자 페이지에 HTML/CSS 편집 을 들어간다.

거기서 하단에 있는 style.css 에서 수정을 하는데

본문 이라고 검색하면 두번째로 /* 본문 */ 라고 주석처리 되어있는 부분으로 간다.

2번째 줄부터 밑의 소스를 볼 수 있는데 마지막 부분에

letter-spacing:2px

이 코드를 추가해주자. 숫자는 본인에게 맞게 수정하면 된다.

.wrap_cont .desc {width:/*@post-width:-12=*/788px/*@*/;color:/*@post-body-color=*/#000000/*@*/;font-family:/*@post-body-font-family=*/inherit/*@*/;margin-bottom:17px;font-size:/*@post-body-font-size=*/12px/*@*/;line-height:2.0em;clear:both;letter-spacing:2px




2px로 설정한 모습

 





반응형
반응형





iframe 바꿔주는 사이트가 있네요

이게 더 편하고 각 옵션들은 아래에 참고해서 쓰시면 될듯 합니다.

http://nuridol.net/ut_convert.html


유튜브는 세계최고의 동영상 저장소라고 볼 수 있다.


게다가 요즘은 엔터테인먼트 회사나 공중파도 유튜브 계정을 만들어 영상을 올리고 있어서 웬만한 영상들은 찾아서 볼 수 있다. 

특히 나는 공중파의 가요프로그램 영상을 볼 수 있다는게 좋았다. 옛날 추억의 노래와 그 무대를 볼 수 있어서다.

화질도 깨끗해서 이 영상을 좀 더 많은 사람들과 나누고파 퍼오려고 하는데 화면도 작게 나오고 화질도 나쁘게 나왔다.


그래서 검색해서 화면도 크고 깨끗하게 퍼오는 법을 알아보았다.





언젠가부터 많은 사람들이 오가는 커뮤니티나 사이트에서는 iframe 태그를 막아 놓았다. 

사람들이 막 다른 나쁜 사이트 링크를 걸어 놓거나 악용하는 소지가 많기 때문이라고 한다.

다음 카페도 iframe으로 퍼가면 화면에 나타나지 않고 

싸이월드 블로그는 아예 html 모드를 없애버렸다.

그래서 싸이 블로그에서는 외부컨텐츠 모드를 이용해서 주소입력을 해서 퍼오기만 가능하다.

(티스토리도 글쓰기에 외부컨텐츠 기능이 있다. 근데 영상이 나오지 않는다. 뭐지..)




싸이 블로그 글쓰기 화면

외부컨텐츠를 누르면 다음과 같이 주소입력하는 창이 뜬다.





저 부분에 유튜브에 공유 탭을 누르면 나오는 주소를 넣으면 된다.


아니면 주소 바로 위에 각 SNS 아이콘이 있는데 이걸로 공유하기를 해도 된다.




하지만 이걸로 공유하게 되면

아래 사진 처럼 이렇게 영상이 작게 공유 된다.




그래서 좀 더 크고 좋은 화질로 공유하려고 하면 이전코드소스를 사용해서 퍼오는게 좋다.

공유->소스코드 탭을 누르면 iframe 소스코드로 되어있다.


여기서 이전소스코드사용을 체크해주면 소스코드가 바뀌게 된다.



사이즈 크기도 선택할 수 있다.


저 소스를 복사해서 글쓰기를 할 때 html 모드에서 붙여넣기 하면된다. 

하지만 화질은 기본화질로 재생된다.




영상사이즈에 맞게 고화질로 재생시켜주기 위해서는 소스코드에 추가로 옵션을 주어야 한다.

만약 HD 720p 로 재생하고 싶다면

&vq=hd720

HD 1080p 로 재생하고 싶다면

&vq=hd1080

을 추가해주면 된다.

(※ &는 여러 옵션을 추가해주기 위한 구분자이다)


위 영상의 소스코드에 추가한다면


<object width="1280" height="720"><param name="movie" value="//www.youtube.com/v/ufsrgE0BYf0?version=3&amp;hl=ko_KR&amp;rel=0"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="//www.youtube.com/v/ufsrgE0BYf0?version=3&vq=hd720&amp;hl=ko_KR&amp;rel=0" type="application/x-shockwave-flash" width="1280" height="720" allowscriptaccess="always" allowfullscreen="true"></embed></object>


이런 식으로 embed 소스 줄에 version=3뒤나 &amp 앞에 추가 해주면 된다. 

(아니면 물음표 뒤에 바로 vq=hd720 이라고 추가해도 된다.)



그리고 화면 사이즈는 시청자가 전체화면 보기로 해서 보면 상관은 없지만 

그냥보는 시청자를 위해 720 화질이면 

width="1280" height="720"

1080화질이면

width="1920" height="1080"

이런식으로 바꿔주는게 좋다.



또 자동으로 재생해주고 싶다면 같은자리에

&autoplay=1 

이라고 추가해주면 된다.



그럼 고화질로 자동재생하라고 하고 싶으면

&vq=hd720&autoplay=1

을 추가해주면 된다.



그리고 또 하나

어떤 유튜브 영상은 이전소스코드를 지원하지 않는 경우가 있다. 또 위 소스를 해도 영상이 안나오면 이 방법을 써보면 해결될 것이다.

그럴 경우에는 


저 표시된 부분을 이용하면 된다.

영상마다 고유한 주소를 갖는데 저게 그 주소이다.

저 부분을 복사해서


 <embed width="640" height="360" src="http://www.youtube.com/v/고유주소&vq=hd720&autoplay=1&start=60&rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true"></embed>

고유주소 부분에 붙여넣으면 iframe 영상도 재생할 수 있다.


예제


위 영상은 아래 소스이다.

<embed width="640" height="480" src="http://www.youtube.com/v/ufsrgE0BYf0?vq=hd720&autoplay=1&rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true">


1920 1080 사이즈하면 너무 커져서 블로그 글 사이즈를 넘어가게 된다. 하지만 화질은 1080 으로 아주 좋다. 

영상바 아래에 화면설정을 보면 1080으로 설정되어있다


한 가지 팁!

&start=60

이거는 영상 시작지점을 지정하는건데 초 단위이다.

1분이면 60, 3분이면 180 이런식으로 초로 계산해서 넣어주면 된다.




반응형
반응형



스피너를 이용하여 값을 전달한 후 값에 따른 이미지를 출력하였다.

string.xml에 스피너에 쓰일 목록을 만들어둔다.



<string name="season">시즌</string>
    
    <string name="season_prompt">시즌 선택</string>
    <string-array name="season_array">
        <item>봄</item>
        <item>여름</item>
        <item>가을</item>
        <item>겨울</item>
    </string-array>



그 다음 send.xml



 <Spinner 
         android:id="@+id/spinner_season" <!--스피너 아이디-->
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:prompt="@string/season_prompt"<!-- string.xml에서 작성한 목록 -->
         android:layout_marginRight="10dp"
          />




이렇게 스피너를 만들어준다.



그리고 SendActivity.java 에서 스피너 값을  보내주자 OnCreate 부분에


Spinner spinner = (Spinner)findViewById(R.id.spinner_season);//send.xml의 스피너 아이디
		
		ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.season_array,
				android.R.layout.simple_spinner_item);
		
		adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
		spinner.setAdapter(adapter);



이렇게 스피너를 선언해주고 Onclick메소드에 스피너 값을 인텐트에 태워 보낸다.


String str_season = spinner.getSelectedItem().toString();	
	 	
 Intent it3 = new Intent(this,ReceiveActivity.class);
			 
	 
			 
 it3.putExtra("it3_season", str_season);	//it3_season 이라는 스트링으로 str_season 값을 넘긴다.	 
 
startActivity(it3);





이제 스피너 값에 따른 이미지를 출력하기 위해 receive.xml 에

이미지 뷰를 만들었다


  <ImageView
       android:id="@+id/season_year"
       		
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"     
                      
       />




이제 ReceiveActivity.java 에서 받아보자.

마찬가지로 OnCreate 부분에



Intent it3=getIntent();		//인텐트를 받아오고
		
		String str_season= it3.getStringExtra("it3_season"); //it3_season으로 보내온 값을 str_season에 저장
		
		ImageView season = (ImageView)findViewById(R.id.season_year); //사진을 출력할 이미지뷰
		if(str_season.equals("봄")){ //str_season 값이 봄이라면
			BitmapDrawable img_season = (BitmapDrawable)getResources().getDrawable(R.drawable.spring); //봄 사진 가져와서
			season.setImageDrawable(img_season);//봄 사진 출력
		}else if(str_season.equals("여름")){
			BitmapDrawable img_season = (BitmapDrawable)getResources().getDrawable(R.drawable.summer);
			season.setImageDrawable(img_season);
		}else if(str_season.equals("겨울")){
			BitmapDrawable img_season = (BitmapDrawable)getResources().getDrawable(R.drawable.autumn);
			season.setImageDrawable(img_season);
		}else if(str_season.equals("가을")){
			BitmapDrawable img_season = (BitmapDrawable)getResources().getDrawable(R.drawable.winter);
			season.setImageDrawable(img_season);
		}



여기서 애를 먹었던게 if 값을 그냥 평소 하던대로

if(str_season == "봄") 이런식으로 해줬는데 안되서 찾아보니까 String 값은

str_season.equals("봄")  

이런식으로 해줘야 했다.


이제 스피너로 봄 값이 넘어오면 이미지뷰에 봄 사진을 넣어주고 여름이면 여름사진을 보여준다.

아 소스코드 태그 은근 귀찮네..



반응형

mp3 ID3 v2 태그 파싱하기

2013. 8. 27. 15:49
반응형

뭐가 뭔지 잘 모르겠지만 일단은 출력된다...

http://www.jthink.net/jaudiotagger/

여기서 왼쪽 하단에 downloads 탭에 Maven Release 에서 

가장 최신으로 보이는 2.2.0-SNAPSHOT 으로 들어간다음

jaudiotagger-2.2.0-20130321.142353-1.jar

jar 파일을 다운 받아 프로젝트 속성에서 라이브러리를 추가해주었다.


jaudiotagger-2.2.0-20130321.142353-1.jar


자세한 소스분석은 모르겠다...


import java.io.File;

import org.jaudiotagger.audio.AudioFileIO;
import org.jaudiotagger.audio.mp3.MP3File;
import org.jaudiotagger.tag.FieldKey;
import org.jaudiotagger.tag.Tag;
import org.jaudiotagger.tag.id3.AbstractID3v2Tag;
public class test {
 public static void main(String[] args) throws Exception {
		String decoding = "ISO-8859-1";
		String encoding = "EUC-KR";
		File file = new File("/home/jeong/걸스데이-말해줘요.mp3");
		MP3File mp3 = (MP3File) AudioFileIO.read(file);
//  ID3v24Tag tag24 = mp3.getID3v2TagAsv24();
		AbstractID3v2Tag tag2 = mp3.getID3v2Tag();

		Tag tag = mp3.getTag();
		String title = tag.getFirst(FieldKey.TITLE);
		String artist = tag.getFirst(FieldKey.ARTIST);
		String album = tag.getFirst(FieldKey.ALBUM);
		String year = tag.getFirst(FieldKey.YEAR);
		String genre = tag.getFirst(FieldKey.GENRE);

		System.out.println("Tag : " + tag2);
		System.out.println("Song Name : " + title);
		System.out.println("Artist : " + artist);
		System.out.println("Album : " + album);
		System.out.println("Year : " + year);
		System.out.println("Genre : " + genre);
	}
}


출력결과

Tag : Tag content:

TIT2:Text="말해줘요"; 

TPE1:Text="걸스데이"; 

TALB:Text="GIRL`S DAY Party #6 [Digital Single]"; 

TCON:Text="아이돌"; 

TRCK:Text="1"; 

TYER:Text="2013"; 

TPE2:Text="걸스데이"; 

USLT:Language="English"; Lyrics="Intro>

우리 둘이 함께 해요 나를 혼자 두진 마

이 밤이 깊어져만 가 빨리 고백 

(민아)

안해? 안해? 안할꺼야?


A>

(소진)

You! 넌 내 맘을 너무 몰라 

Oh You! 빛나는 저 파도같아

You! 왜 자꾸 애태우는지 (아이야아 아아 이 야이야)


A`

(혜리)

(하나 하나 하나 둘 셋 넷!) 하면 솔직히 내게 말해줘 

(니가 먼저 말해주면 안돼) Oh 부끄러워 부끄럽단 말야 


B>

(민아)

시원한 바람 아름다운 해변 이곳엔 너와 단 둘이 

모든 걱정들은 저기 저 바다에 던져 버릴래 


C> 

(다같이)

지금 말해줘요 말해줘요 말해줘요  

(소진)

사실은 나를 좋아한다고 우릴 위한 저 바닷가로  빨리 떠나요 


(다같이)

지금 말해줘요 말해줘요 말해줘요 

(민아)

난 너 하나면 충분해 약속해 손가락 걸고 말해줘 말해줘요 말해줘 말해줘요 



Rap>

(유라)

다다른 여자보단 내가 나아 하나보단 둘이 

아침부터 저녁까지 우리 둘이 (나나나나) 

이 노래를 불러 Say 1!2!3!4!



(민아) 

야! 안 따라 부르냐?


B>

(혜리)

뜨거운 태양 부서지는 파도 이곳엔 너와 단 둘이 

(민아)

모든 걱정들은 저기 저 하늘에 던져 버릴래 


C> 

(다같이)

지금 말해줘요 말해줘요 말해줘요 

(민아)

난 너하나면 충분해 약속해 손가락 걸고 말해줘 말해줘요 말해줘 말해줘요 


Bridge>

(유라) 

오늘밤이 다 가기 전에 고백해줄래요 

(소진)

사랑해 사랑해 달콤한 입술로

(민아)

아침을 깨워줄 그댄 너란 걸  


C> 

(소진)

지금 말해줘요 나 사랑한다는 그 말 아끼지 말아요 두 손을 꼭 붙잡고 멀리 떠나요



(다같이-소진 애드립)

지금 말해줘요 말해줘요 말해줘요

(민아)

너와 이 여름안에서 영원히 함께 할래요 말해줘 말해줘요 말해줘 말해줘요


"; 

TLAN:Text="kor"; 

TPOS:Text="1"; 

APIC:MIMEType="image/jpeg"; PictureData="57966 bytes"; 


Song Name : 말해줘요

Artist : 걸스데이

Album : GIRL`S DAY Party #6 [Digital Single]

Year : 2013

Genre : 아이돌









반응형

'지식메모 > JAVA' 카테고리의 다른 글

숫자 천단위 콤마 입력하기  (0) 2014.09.25
Json의 이해  (0) 2013.11.05
대문자 소문자 서로 변환하기  (0) 2013.10.08
java 문자열 구분자로 자르기  (0) 2013.10.02
ObjectNode 와 JsonNode 차이?  (0) 2013.09.06
반응형

 

윈도우7 / 윈도우10 동일

화면을 나누고 싶을때 

윈도우키 + 방향키를 누르면 알아서 분할된다.

윈도우키 + ← 

 윈도우키 +

 

 

 

사진처럼 양쪽으로 알아서 배치된다.

방향키 위를 누르면 전체화면이 되고

아래를 누르면 최소화 된다.

 

또 하나 팁 바탕화면 보고 싶을땐

 

윈도우키 + D

 

누르면 볼 수 있다.

반응형

+ Recent posts