2015년 8월 7일 금요일

[android] textview 옆에 image 추가하기.

xml페이지에 다음과 같이 구현

android:drawableLeft : 텍스트 왼쪽에 이미지 추가.
android:drawableRight : 텍스트 오른쪽에 이미지 추가.
Left, Right 외에도 top, bottom, start, end가 있다.

android:drawablePadding : 이미지의 공간 (텍스트와 이미지 사이의 간격을 띄울 때 주로 사용.)

<TextView
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:text="오른쪽에 마크"
          android:drawableRight="@drawable/mark"
          android:drawablePadding="10dp" />

2015년 8월 5일 수요일

[ios] image set Retina 4-inch가 안먹을 때



Image set을 이용하여 기기별로 이미지를 각각 지정하여도
iphone5/5s에서 Retina 4-inch의 이미지가 적용이 되지 않고 2x의 이미지가 적용되는 현상이 발생했다.












적용되지 않았던 원인은!!
Deployment Target을 6.0으로 지정했기 때문에!!!
7.0으로 변경하니 제대로 적용되었다.

7.0부터 적용되며 그 이하에서는 Retina 4-inch대신 2x이미지가 적용되는듯 하다.



2015년 8월 4일 화요일

[ios] addsubview를 사용해 autolayout이 작동하지 않을 때


autolayout을 적용했음에도 view의 크기가 기기에 따라 변하지 않을 때 (fullscreen을 원할 때)

FirstViewController *viewController = [[FirstViewController allocinitWithNibName:@"FirstViewController" bundle:nil];

viewController.view.frame = self.view.frame;
or 
viewController.view.frame =[UIScreen mainScreen].applicationFrame;

[self.view addSubview: viewController.view];



2015년 8월 3일 월요일

[ios] viewcontroller 간의 데이터(값) 전달 (delegate 이용)

FirstViewController SecondViewController 두개의 뷰가 존재하며
FirstViewController에 SecondViewController의 데이터를 전달하고자 한다.

SecondViewController : 데이터를 전달
FirstViewController : 데이터를 받음

[SecondViewController.h]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// 프로토콜 선언
@protocol SecondViewDelegate <NSObject>;
@required
-(void) getData:(int)data;
@end
// 델리게이트 선언
@interface SecondViewController : UIViewController
{
    id < SecondViewDelegate > delegate;
}
@property (nonatomic,assign) id< SecondViewDelegate > delegate;
@end
cs

[SecondViewController.m]
1
2
// 값을 보냄
[self.delegate getSelectData:10];
cs


[FirstViewController.h]
1
2
3
4
#import "SecondViewController.h"
@interface FirstViewController : UIViewController< SecondViewDelegate > 
cs



[FirstViewController.m]
1
2
3
4
5
6
7
8
9
SecondViewController *viewController = [[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:nil];
// 꼭 델리게이트 지정해주어야 함
viewController.delegate = self;
 
// 델리게이터 함수 구현 값을 받음
-(void) getData:(int)data
{
    NSLog(@"data = %d", data);
}
cs









2015년 7월 20일 월요일

[android] listview 구현하기

<main.xml>
android:divider -> 리스트의 셀사이의 선색
android:dividerHeight -> 리스트의 셀사이 선 두께
1
2
3
4
5
6
7
<ListView
     android:id="@+id/list"
     android:layout_width="fill_parent"
     android:layout_height="wrap_content"
     android:divider="#ff0000"
     android:dividerHeight="1dp" >
</ListView>
cs


<MainActivity.java>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
ArrayList<String> m_arr;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        m_arr = new ArrayList<String>();
        m_arr.add("김수현");
        m_arr.add("송중기");
        m_arr.add("비스트");
        
        ArrayAdapter<String> m_Adapter  = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, m_arr);
        ListView m_list = (ListView)findViewById(R.id.list);
        m_list.setOnItemClickListener(mItemClickListener);
        m_list.setAdapter(m_Adapter);
    }
    
    AdapterView.OnItemClickListener mItemClickListener = new AdapterView.OnItemClickListener() {
        public void onItemClick(AdapterView<?> parent, View view, int position , long id)
        {    
            Toast.makeText(MainActivity.this, m_arr.get(position), Toast.LENGTH_SHORT).show();
        }
    };
cs


고정적인 문자열일 경우 ArrayList대신 사용가능한 방법.

* 단순배열로 가능.
   String[] str = {"이기광","윤두준","양요섭", "용준형"};

* 리소스에 정의한 후 읽어오는 방법.(고정적인 문자열이라면 추천)
   1. values/array.xml 파일 생성(File > New > Other > Android XML Values File)
   2. Add... > String Array > OK > Name지정





















 3. Add... > Item > OK > Value값 입력
 4. Item을 모두 추가한후 arrays.xml을 확인해보면 다음과 같이 생성.
1
2
3
4
5
6
7
8
9
10
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string-array name="name">
        <item >이기광</item>
        <item >윤두준</item>
        <item >용준형</item>
        <item />
    </string-array>
</resources>
cs

5. MainActivity.java에서 createFromResource를 사용하여
1
 ArrayAdapter<CharSequence> m_Adapter = ArrayAdapter.createFromResource(this, R.array.name, android.R.layout.simple_list_item_1);
cs




2015년 7월 19일 일요일

[android] login dialog popup 구현 / Activity를 dialog로 만들기 / custom dialog

login dialog (custom dialog) 만들기
















Activity를 dialog로 보이기.

Manifest에서 android:theme="@android:style/Theme.Holo.Light.Dialog"
1
2
<activity android:name=".ActivityDialog"
    android:theme="@android:style/Theme.Holo.Light.Dialog"></activity>
cs

login dialog 만드는 자세한 소스는 추후 추가.

[android] 이클립스 줄 넘버, 줄 번호 (eclipse line number)

사진과 같이 eclipse에서 왼쪽 줄번호 나타내는 방법.






















Window > Preferences > General > Editors > Text Editors > Show line numbers 체크