ImageView 에 margin속성 넣기 ( java소스 )

[Android Notes]

안드로이드 개발할때

LinearLayout 안에 ImageView를 넣을때

XML의 경우에는


<LinearLayout
andorid:id="@+id/la"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<ImageView
android:src="@drawable/소스"
android:layout_marginLeft="5px"
android:layout_marginRight="10px"
android:layout_width="100px"
android:layout_height="150px"

/>
</LinearLayout>



위와 같이 편하게 넣을수 있지만.

java소스에서는 가끔 난감한 경우가 있습니다.

xml의 속성중에 "layout_"가 들어가는 속성은

전부 'LayoutParams' 라는 객체로 설정을 할수있습니다.

위소스 내용에 JAVA소스로 ImageView를 하나더 추가 해보겠습니다.



LinearLayout tmpLay = ( LinearLayout ) findViewById( R.id.la );

ImageView testImg = new ImageView ( getBaseContext() );

//LayoutParams
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams( 100 , 150 );
lp.setMargins( 5 , 0 , 10 , 0 ); // Left, Top, Right, Bottom

testImg.setImageResource( "이미지경로" );

tmpLay.addView( testImg , lp );




이렇게 위와 같은 방법으로 LayoutParams를 추가 할 수 있습니다.


- 태클은 언제나 감사히. -

크리에이티브 커먼즈 라이센스
Creative Commons License
2010/08/12 11:43 2010/08/12 11:43

이클립스 에서 안드로이드 개발시 Unknown error: java.lang.NullPointerException 문제.

[Android Notes]
물론 안드로이드 뿐만 아니라 이클립스에서 프로젝트를 제작 하다보면

가끔씩 전혀 알수 없는 에러가 뜨기도 합니다.

뭐 위치도 알수없고 에러 내용도 알수없는 NullPointerException 이라니.

우선 가장 권장 해볼만한건, 이클립스 메뉴바에 Project - > Clean  해서 해당 프로젝트를 클린 해주시면.

대부분 해결되는 경우가 많습니다~!

참고하세요~!
크리에이티브 커먼즈 라이센스
Creative Commons License
2010/08/05 15:02 2010/08/05 15:02

뻘짓.

[My Notes]
크리에이티브 커먼즈 라이센스
Creative Commons License
2010/06/11 15:58 2010/06/11 15:58
TAG. , ,

Flex AdvancedDataGrid 정렬 ( Sort ) 하기.

[Knowledge Notes/FLEX]

안녕하세요~!

간만에 글을 쓰게 되네요;

다름이 아니라 AdvancedDataGrid를 사용할때 GroupingCollection 을 필수로 또는 필요로 사용하게 되는

경우가 생깁니다.

그런데 이녀석이 Sorting을 간혹 지멋대로 하는결과가 초래 되는데요,

이럴땐 SortField를 이용하여 원하는 필드를 지정하여 Sort시킬 수 있습니다.

자 우선~!

사용자 삽입 이미지
위의 결과를 보시면 비용(cost)  필드의 내용이 정렬이 되어 있지 않습니다.

사용자 삽입 이미지

요녀석을 보시면 비용(cost) 필드의 내용이 내림차순으로 정렬이 되어있군요~!

엇. 캡춰하는 도중에 필드를 하나 더 추가해버렸네요 ..^^;;

여튼, 간단한 방법으로 위의 내용을 정리해 보겠습니다.


<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init()">

<mx:Script>
<![CDATA[
import mx.collections.Sort;
import mx.collections.SortField;
import mx.collections.ArrayCollection;

[Bindable]
private var ac:ArrayCollection = new ArrayCollection([
{group:"AA",name:"banana",cat:"fruit",cost:.99,qty:2},
{group:"AA",name:"bread",cat:"bakery",cost:1.99,qty:3},
{group:"AA",name:"cheddar cheese",cat:"dairy",cost:4.52,qty:6},
{group:"AA",name:"sour cream",cat:"dairy",cost:.33,qty:2},
{group:"AA",name:"orange",cat:"fruit",cost:.52,qty:4},
{group:"BB",name:"donut",cat:"bakery",cost:.33,qty:12},
{group:"BB",name:"non-fat yogurt",cat:"dairy",cost:1.99,qty:5},
{group:"BB",name:"milk",cat:"dairy",cost:2.99,qty:2},
{group:"BB",name:"apple",cat:"fruit",cost:1.05,qty:4},
{group:"BB",name:"colby cheese",cat:"dairy",cost:3.05,qty:4}
]);// as ArrayCollection;



private function adgSort() : void
{
var sortFields:Array = [ new SortField( "cost", false, false, false ) ];
var sort:Sort = new Sort();
sort.fields = sortFields;
adg.dataProvider.sort = sort;
adg.dataProvider.refresh();
adg.expandAll();
}


]]>
</mx:Script>

<mx:GroupingCollection id="myGroup" source="{ac}">
<mx:Grouping>
<mx:GroupingField name="group" />
</mx:Grouping>
</mx:GroupingCollection>


<mx:AdvancedDataGrid id="adg" width="500" height="500" dataProvider="{myGroup}" initialize="myGroup.refresh();" updateComplete="adgSort();">
<mx:columns>
<mx:AdvancedDataGridColumn dataField="name" />
<mx:AdvancedDataGridColumn dataField="cost" />
<mx:AdvancedDataGridColumn dataField="cat" />
<mx:AdvancedDataGridColumn dataField="qty" />
</mx:columns>
</mx:AdvancedDataGrid>

</mx:Application>



위의 소스코드를 보시면

private function adgSort() : void
            {
                var sortFields:Array = [ new SortField( "cost", false, false, false )  ];
                var sort:Sort = new Sort();
                sort.fields = sortFields;
                adg.dataProvider.sort = sort;
                adg.dataProvider.refresh();
                adg.expandAll();
            }

adgSort() 라는 함수를 볼수있습니다.

바로 이녀석이 오늘의 주인공이죠.

AdvancedDataGrid에 그룹되어 내용이 들어가기 위해서는

GroupingCollection 이라는 녀석을 사용하여 데이터를 그룹핑하고 그다음에 dataProvider를 사용하여

AdvancedDataGrid에 바인딩 시킵니다. 그러나 바인딩이 완료 되고나서 데이터가 틀어지는 현상이

가끔(?) 가다 생기므로 새로 정렬을 시켜주는거죠.

우선 adgSort()함수 내부에 있는 녀석들을 소개 하겠습니다.

 new SortField( 대상 데이터 네임 , 대소문자 구분  , 내림차순 , 숫자비교 ); <-- 이런 식으로 쓸수 있겠습니다.

 new SortField( "name" , false , true ); <-- 이런 식으로 쓰게 되면 "name"필드의 내용을 내림차순으로 정렬하게 되죠.

이렇게 Sort될 필드를 지정하고 이미 데이터의 내용이 바인딩 되어있는 AdvancdeDataGrid의 DataProvider에 접근하여 내용들을 다시 Sort해주는 방법입니다.

즉 순서로 보면  원본데이터 - > 그룹핑 - > AdvancedDataGrid에 데이터 바인딩 - > 바인딩 되면 바인딩 된 내용을 Sorting - > 데이터 Refresh - > 화면 표시.

약간은 복잡한 방법이 될수도 있겠습니다.

제가 아직 글쓰기에 능하지 않아서 앞뒤가 뒤죽 박죽 또는 이해하기 힘드실수도 있겠네요.ㅠㅠ

혹시나 이보다 더 좋은 방법을 알고 계시거나 제가 제시한 내용이 위험하다거나, 문제가 있을때는 "지적&태클" 부탁드립니다~!

역시나 트랙백도 감사하죠~ ^-^;
크리에이티브 커먼즈 라이센스
Creative Commons License
2010/04/26 14:28 2010/04/26 14:28

Flex 소숫점 이하 n의 자리까지 표시하기

[Knowledge Notes/FLEX]
Flex(AS3.x) 에서는 ( 물론 Flex에서만이 아닐수도 있습니다 ^^;; )

간단하게 소숫점 이하의 자리들을 처리 할수가 있습니다.

예를 들어 Number형으로 계산되었을때 10.123123 이라는 수를

소숫점 2번째 자리까지만 표시 하려고 할때 여러가지 방법이 있겠지만,

가장 간단하게 Number의 toFixed()라는 속성을 사용하는 방법입니다.


public function test() : void
{
var num:Number = 123.12312312312;

trace( "fixed 1 : " + num.toFixed( 1 ) );
trace( "fixed 2 : " + num.toFixed( 2 ) );
trace( "fixed 3 : " + num.toFixed( 3 ) );
trace( "fixed 4 : " + num.toFixed( 4 ) );
trace( "fixed 5 : " + num.toFixed( 5 ) );
trace( "fixed 6 : " + num.toFixed( 6 ) );
trace( "fixed 7 : " + num.toFixed( 7 ) );
trace( "fixed 8 : " + num.toFixed( 8 ) );
trace( "fixed 9 : " + num.toFixed( 9 ) );
trace( "fixed 10 : " + num.toFixed( 10 ) );
trace( "fixed 11 : " + num.toFixed( 11 ) );
trace( "fixed 12 : " + num.toFixed( 12 ) );

}



위의 방법 처럼 trace를 찍었을 경우 나오는 결과는  아래와 같습니다.

fixed 1 : 123.1
fixed 2 : 123.12
fixed 3 : 123.123
fixed 4 : 123.1231
fixed 5 : 123.12312
fixed 6 : 123.123123
fixed 7 : 123.1231231
fixed 8 : 123.12312312
fixed 9 : 123.123123123
fixed 10 : 123.1231231231
fixed 11 : 123.12312312312
fixed 12 : 123.123123123120


 소숫점 이하 11자리의 수를 사용했을때의 결과 값입니다.

 마지막에 fiexed 12의 결과 값을 보시면 끝에 "0"라는 숫자가 추가 되었음을 알수있습니다. ^^;

무조건 12자리로 표시하는거죠.

즉 소숫점 이하 한자리의 수를 toFiexed()를 이용해 10자리 까지 찍는다면 나머지 9 자리는 "0"으로

표시 될껍니다. 참고로 리턴되는 데이터 형식은 String 형입니다.


-- 태클 또는 내용 추가 , 트랙백 언제나 환영입니다 ^^ --
크리에이티브 커먼즈 라이센스
Creative Commons License
2010/04/13 10:28 2010/04/13 10:28

Flex NumberFormatter 사용 천단위 컴마(,) 표시하기

[Knowledge Notes/FLEX]
어떤 언어든지 NumberFormatter이 있거나 또는 Formatter이 있지만,

Flex에서는 아주 쉽게 천단위에 컴마( , ) 를 찍을수 있습니다.

ActionScript를 이용하는 방법입니다.

private function test() : void
{
var numberFormatter:NumberFormatter = new NumberFormatter();
numberFormatter.useThousandsSeparator = true;

//numberFormatter.format(value:Object):String
trace( numberFormatter.format( 10000000 ) );

}



numberFormatter.format( value:Object ):String 처럼 format() 라는 속성을 이용하시면 쉽게

천단위에 컴마를 찍을수 있습니다. 데이터가 String형이든 Integer 또는  Number이던 상관이 없습니다.

value를 Object형으로 받아서 String형으로 리턴 해주기 때문이죠 ^^

-- 태클 또는 추가 , 트랙백 언제나 환영입니다 ^^ --
크리에이티브 커먼즈 라이센스
Creative Commons License
2010/04/13 10:15 2010/04/13 10:15

현재 블로그 Skin Test 와 설정 중에 있습니다.

[분류없음]

블로그 스킨 테스트를 하고있습니다..

내용이 잘 안보이거나 깨져 나올수있으므로 참고 하시기 바랍니다 ^-^;
크리에이티브 커먼즈 라이센스
Creative Commons License
2010/03/25 13:07 2010/03/25 13:07

지엠대우

[My Notes]
크리에이티브 커먼즈 라이센스
Creative Commons License
2010/01/24 19:28 2010/01/24 19:28

Windows Server2008 에서 IIS7 과 Tomcat6 연동

[Setting Notes]

Server 2008 환경에서 IIS7 + Tomcat 6 연동 설정하기.


필수 필요 자료 ( Setting up Tomcat 6 on IIS7 )


1. Tomcat 6.x for window   ( http://tomcat.apache.org )

2. Isapi_redirector-1.2.27.dll 과 isapi_redirect-1.2.9.exe 버전  ( http://tomcat.apache.org/download-connectors.cgi )

3. JDK 6  for window ( http://java.sun.com/javase/downloads/index.jsp )


톰캣6 설치 ( Install Tomcat )


1. JDK 6 을 설치 한다. ( 기본폴더 )

2. 톰캣 설치 파일로 톰캣을 설치한다. ( 기본설정 )

3. 톰캣을 설치후 실행하여 제대로 돌아가는지 확인한다.

    ( http://localhost:8080 )

4. 위 링크에서 고양이가 제대로 나온다면 톰캣 설치까지 완료.

5. 기본폴더 < - 라고 지정된건 사용자 취향에 맞춰서 고쳐도 됨.


IIS7 테스트 ( Test IIS7 )


1. IIS7  을 실행한다 ( Start up IIS7 )

2. http://localhost/ 를 입력하여 index 화면이 나오는지 확인한다.


ISAPI Redirect 설치 ( Install Isapi_redirect )


1. 준비된 isapi_redirect-1.2.9.exe 를 실행 하여 설치한다.

2. 설치가 완료되면 다운로드 받은 Isapi_redirect-1.2.27.dll 을

    C:\Program Files\Apache Software Foundation\Jakarta Isapi Redirector\bin

 경로에 있는 isapi_redirect.dll 과 같은이름으로 교체한다.

3. C:\Program Files\Apache Software Foundation\Jakarta Isapi   Redirector\conf 경로에 있는 uriworkermap.properties 파일을 메모장이나

 텍스트 에디터로 열어서 아래와 같이 세팅한다.


# uriworker.properties -
#
# This file provides sample mappings for example
# ajp13w worker defined in workermap.properties.minimal

/admin/*=ajp13w  
/manager/*=ajp13w
/jsp-examples/*=ajp13w
/servlets-examples/*=ajp13w
/examples/*=ajp13w

# Now filter out all .jpeg files inside that context
# For no mapping the url has to start with exclamation (!)


!/servlets-examples/*.jpeg=ajp13w
/*.jsp=ajp13w   
/*.do=ajp13w
/*.action=ajp13w


사용법은 "/xxxx/*=ajp13w" 이런식으로 경로별 필터와

 "/*.jsp=ajp13" 이런식으로 확장자별 필터로 적용하실수 있습니다.

예를 들어서 http://localhost:8080/abc/test.htm  인 톰켓 경로를

http://localhost/abc/test.htm 으로 쓰려면

"/abc/*=ajp13w"로 추가 해주시면 됩니다.


위의 설정이 끝나면 IIS7설정으로 넘어갑니다.


IIS7 설정 ( Configure IIS7 )


1. 서버관리자 ->역할 -> 웹서버 -> IIS관리자 의경로로 가면 서버를 선택 (그림참조)

사용자 삽입 이미지


그림에서 ISAPI 및 CGI 제한 이라는 아이콘을 클릭하면  아래와 같은 화면이 나온다.


사용자 삽입 이미지


우측의 작업 영역에서 추가를 눌러서 ISAPI 필터를 추가해준다.

필터의 경로는 isapi_redirector 를 설치한 곳에 bin폴더 밑에 isapi_redirect.dll

추가해주고 설명은 간단하게 jakarta 라고 써준다.

* 확장경로 실행 이라는 체크는 반듯이 해준다.


2. 위와 같은 방법으로 ISAPI 및 CGI제한 이라는 아이콘 옆에 ISAPI 필터 라는 아이콘을 선택한후 같은 방법으로 필터를 추가해준다.

여기서 필터이름은 위에서 했던 같은이름을 써준다. 필자는 jakarta라고..썻..


3. 사이트에도 마찬가지로 ISAPI 필터 를 추가해주자.


사용자 삽입 이미지


다른 경로를 사용하시는분은 해당경로에 해주면 되고, 필자는 그냥 Default Web Site로

정했기때문에 Default에다가 추가해 주었음. 추가 방법은

위에서 말했던 1번의 방법을 사용하면 됨. 이름은 마찬가지로 헷갈리지 않게..

똑같이 정의하는 방법을 추천한다.


이제 기본적인 설정은 끝났다. 테스트를 해볼시간....


설정이 끝나면 IIS7을 재시작 해주고 Tomcat6를 실행시켜준다.


필터 설정에서 별다른 경로를 추가 하지 않았다면


http://localhost/ 경우에서는 IIS7에 있는 기본 Index화면이 나올것이다.


사용자 삽입 이미지

위의 화면이 IIS7의 기본화면.


이제 ISAPI 필터를 이용해서 톰캣의 메인화면을 보자.


http://localhost/index.jsp  <-*.jsp 이므로 필터에 걸려있으므로 바로 tomcat로 토스!


사용자 삽입 이미지


오~! 드디어 화면이 나왔다.. 하지만?;;


뭔가 이상하다.. 그렇다. 고양이 그림이 엑박으로 나왔다. 문제점을 확인!


이미지의 경로를 확인해보니 http://localhost/tomcat.gif 이 경로다.


ISAPI 필터 등록정보에는 .gif가 등록되어 있지 않다. 말그대로 저건


IIS7에있는 Default 폴더에서 찾기때문에 화면이 보이지 않는다.


*해결방법


C:\Program Files\Apache Software Foundation\Jakarta Isapi   Redirector\conf 경로에 있는 uriworkermap.properties 파일을 열어

다음을 추가해준다. /*.gif=ajp13w 이걸 추가해주면 문제 해결~!!


* 제가 아직 미숙하여 틀린점이거나 안되는 부분있으면 댓글로 남겨 주시면

감사하겠습니다. 지적할점 과 틀린점 있다면 매질 부탁드립니다. ^-^

관심으로 생각하고 달게 받겠습니다~!

크리에이티브 커먼즈 라이센스
Creative Commons License
2009/12/10 17:42 2009/12/10 17:42