Titlebar

상단바라고도 함. UI의 상단에 텍스트와 색을 넣어서 주로 앱의 이름을 보여줄때 사용. Android 2.0 앱들에서 주로 사용됨.

Actionbar

버튼(ex. 뒤로 가기) 을 가지는, 버튼들로서 어떠한 Action들을 취할 수 있게 해주는 상단 bar. Titlebar 대신 사용 가능.

Toolbar

Actionbar보다 더 많은 기능과 특성들을 지니고 있음. Actionbar와 다르게 View이기 때문에 많은 것들을 적용시키기에 용이하다. (ex 애니메이션)


참고 출처

https://stackoverflow.com/questions/19279222/android-whats-the-difference-between-a-title-bar-and-an-actionbar

https://developer.android.com/reference/android/app/ActionBar

https://developer.android.com/reference/android/widget/Toolbar

https://developer.android.com/training/appbar/


'Android > 하루 꿀팁' 카테고리의 다른 글

Android Stduio Preview 상단 타이틀바 제거  (0) 2018.05.27
URL, URI, URN  (0) 2018.05.16
안드로이드의 4대 구성 요소  (0) 2018.05.16
AsyncTask 사용 규칙  (0) 2018.04.06
ANR(Application not response)  (0) 2018.04.06
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>

values/styles.xml의 자신이 Manifest에서 사용하고 있는 theme에 추가

'Android > 하루 꿀팁' 카테고리의 다른 글

Titlebar vs Actionbar vs Toolbar  (0) 2018.06.16
URL, URI, URN  (0) 2018.05.16
안드로이드의 4대 구성 요소  (0) 2018.05.16
AsyncTask 사용 규칙  (0) 2018.04.06
ANR(Application not response)  (0) 2018.04.06

URL(Uniform Resource Locator) : 자원의 위치를 나타내는 문자열

URN(Uniform Resource Name) : uuid, isbn

URI(Uniform Resource Idenfier) : 통합 자원 식별 표기를 위함. URL과 URN의 상위 개념.


'Android > 하루 꿀팁' 카테고리의 다른 글

Titlebar vs Actionbar vs Toolbar  (0) 2018.06.16
Android Stduio Preview 상단 타이틀바 제거  (0) 2018.05.27
안드로이드의 4대 구성 요소  (0) 2018.05.16
AsyncTask 사용 규칙  (0) 2018.04.06
ANR(Application not response)  (0) 2018.04.06

Activity : UI 화면 컴포넌트

Service : 백그라운드에서 실행되는 컴포넌트

Broadcast Receiver : 특정 브로드캐스트에 반응하는 컴포넌트. 배터리 부족 등등

Content Provider : 어플리케이션 간의 공유를 위한 인터페이스 제공 컴포넌트

'Android > 하루 꿀팁' 카테고리의 다른 글

Titlebar vs Actionbar vs Toolbar  (0) 2018.06.16
Android Stduio Preview 상단 타이틀바 제거  (0) 2018.05.27
URL, URI, URN  (0) 2018.05.16
AsyncTask 사용 규칙  (0) 2018.04.06
ANR(Application not response)  (0) 2018.04.06
public class MainActivity extends AppCompatActivity {

ImageView pic;
Button callBtn, uploadBtn;
private int PICK_IMAGE_REQUEST = 1;
private String TAG = "uploadActicity";

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initialSetting();
}

public void initialSetting() {
pic = findViewById(R.id.iv_pic);
callBtn = findViewById(R.id.btn_callPic);
uploadBtn = findViewById(R.id.btn_uploadPic);
}

public void callImage(View v) {
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent, "사진을 선택하세요"), PICK_IMAGE_REQUEST);
}

public void uploadImage(View v) {
// Upload image with lon library
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);

if(requestCode == PICK_IMAGE_REQUEST && resultCode == RESULT_OK && data != null && data.getData() != null) {
Uri uri = data.getData();

try {
Bitmap bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), uri);
Log.d(TAG, String.valueOf(bitmap));

pic.setImageBitmap(bitmap);
} catch(IOException e) {
e.printStackTrace();
}
}
}
}


'Android > 예제' 카테고리의 다른 글

ProgressBar + Thread 예제  (0) 2018.04.06

1. AsyncTask의 인스턴스는 반드시 메인 스레드에서 생성해야 함.

2. execute() 메소드는 반드시 메인 스레드에서 실행해야 된다.

3. onPreExecute(), onPostExecute(Result), doInBackground(Params...), onProgressUpdate(Progress...) 콜백 메소드를 직접 호출하면 안된다.

4. AsyncTask의 인스턴스는 한 번만 실행할 수 있다.


출처 : 될 떄까지 안드로이드, 오준석

'Android > 하루 꿀팁' 카테고리의 다른 글

Titlebar vs Actionbar vs Toolbar  (0) 2018.06.16
Android Stduio Preview 상단 타이틀바 제거  (0) 2018.05.27
URL, URI, URN  (0) 2018.05.16
안드로이드의 4대 구성 요소  (0) 2018.05.16
ANR(Application not response)  (0) 2018.04.06

UI 요소가 10초 동안 반응하지 않으면 ANR error를 발생시키고 앱을 종료할지 기다릴지 정하도록함.

(Android Developer에서는,

  • No response to an input event (such as key press or screen touch events) within 5 seconds.
  • BroadcastReceiver hasn't finished executing within 10 seconds.

라고 명시되어 있습니다.)

Thread.sleep()등이 메인 스레드를 대기시키고 UI 갱신을 방해함.

해결방법 : Thread + Handler, AsyncTask

'Android > 하루 꿀팁' 카테고리의 다른 글

Titlebar vs Actionbar vs Toolbar  (0) 2018.06.16
Android Stduio Preview 상단 타이틀바 제거  (0) 2018.05.27
URL, URI, URN  (0) 2018.05.16
안드로이드의 4대 구성 요소  (0) 2018.05.16
AsyncTask 사용 규칙  (0) 2018.04.06

package inner.test;

import android.os.Bundle;
import android.os.Handler;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.ProgressBar;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {
private TextView tv;
private ProgressBar pb;
private Handler mHandler = new Handler();

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initialSetting();
}

public void initialSetting() {
tv = findViewById(R.id.textView);
pb = findViewById(R.id.progressBar);
}

public void download(View v) {
new Thread(new Runnable() {
@Override
public void run() {
for(int i=0;i<=100;i++) {
try {
Thread.sleep(100);
} catch(InterruptedException e) {
e.printStackTrace();
}
final int percent = i;
mHandler.post(new Runnable() {
@Override
public void run() {
tv.setText(percent + "%");
pb.setProgress(percent);
}
});
}
}
}).start();
}

}


'Android > 예제' 카테고리의 다른 글

갤러리에서 Image 받아와 ImageView에 적용 예제  (0) 2018.04.13

필요하면 그때그때 추가!


Permission 제어
https://github.com/ParkSangGwon/TedPermission


UI/UX 및 Animation

https://github.com/wasabeef/awesome-android-ui


findViewById가 싫다면

https://academy.realm.io/kr/posts/aw211-android-data-binding-mvp-passive-view-interface/


이미지 전송

https://github.com/koush/ion


'Android' 카테고리의 다른 글

Error : Cannot resolve symbol 'R'  (0) 2017.12.28


안드로이드 스튜디오를 하다가 종종 만나는 오류들 중 하나. Cannot resolve symbol 'R'(저도 방금 발생한 오류이기에 이렇게 글을 적어봅니다)

R.java를 건들지도 않았는데 왜 안스를 켤때마다 이런 에러가 뜨는지 고민이신 분들에게 해결 방법을 제시해..보도록 하겠습니다.


1) 원인

R.java가 빌드가 제대로 되지 않았거나 오타가 있는 경우가 대부분을 차지합니다.


2) 해결방법

1. AndroidManifest.xml, layout의 ~.xml 파일 등(대부분 건드리는 부분)에 오타가 있는지 확인 한다.

2. Build > Clean project를 시도해본다.

말그대로 전에 빌드했던 project를 비운다는 뜻입니다 :D

3. File > Invalidate Caches/Restart를 시도해본다.

'캐시 무효화 후 재시작'이라는 의미입니다. 때로는 많은 양의 캐시가 우발적으로 에러를 발생시킬 수 있기에 캐시를 비워줍시다.


모두가 이 세가지 범위 안에서 이 에러를 고쳤으면 좋겠습니다 :)

만약 그래도 고쳐지지 않는다면.. 프로젝트를 다시 만드는게.. 더 빠를 수도 있을겁니다!

'Android' 카테고리의 다른 글

상황마다 필요한 라이브러리/코드 모음  (0) 2018.03.31

+ Recent posts