▶Programming 썸네일형 리스트형 java.lang.RuntimeException: Your content must have a TabHost whose id attribute is java.lang.RuntimeException: Your content must have a TabHost whose id attribute is tabhost를 만들다보면 위와 같은 에러를 경험할 때가 있다. 이유는 xml의 id를 잘못 입력한 경우 저런 에러가 생긴다. 십중 팔구는 android:id="@id/tabhost" 라고 했을꺼다. 그리고 mainActivity에서 R.id.tabhost라고 호출했을거고..위와 같은 식으로 했을 때 에러가 생기는 것이므로 이를 수정하자. 먼저 아래와 같이 xml의 id의 양식을 바꾼다. 그리고 아래와 같이 mainActivity의 findViewById안의 파라미터도 아래와 같이 바꾼다. 끝~ 더보기 Canvas Draw bitmap 개념 이해 실제로 화면에 그림을 그리는건 draw 메소드들. draw 메소드를 사용하는 주체는 Canvas. Canvas는 주체이므로 그림을 그리려면 도화지가 필요하다. 이 도화지가 bitmap drawbitmap도 결국은 bitmap을 도화지에 그리는것. paint는 붓 종류. 굵은 붓인지. 얇은 붓인지...어쨋든 붓 종류. point는 좌표. 더보기 extends AppCompatActivity 안에서 dialog 만들기, dialog 크기 변경 제목을 보면 대충 감이 오시리라 믿는다. 무슨말인고하니.. 123456public class example extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); }Colored by Color Scriptercs 위와같이 처음 안드로이드 스튜디오에서 액티비티를 만들면 위와같이 나온다. 즉 위의 코드가 거의 기본 모습인데...여기에 dialog를 만드려 한다. 보통 책에 보면 alert 다이얼그니 무슨 다이얼로그니 하면서 상당히 어렵게 표현해 두었다. 가장 빡치는건.. 더보기 큰 사이즈의 bitmap을 효과적으로 줄여서 로딩하기 미리 말해두자면 여긴 완벽한 코드를 올리는 곳이 아니다. 그저 '아..그래서 저 코드를 쓴거구나' 정도만 이해했으면 하는 바람으로 글을 쓰는 것이다. 실제 사례라든지 소스코드는 깃허브나 스텍오버플로우 등에 가서 받길 바란다. BitmapFactory는 각종 디코딩 메소드를 제공함. 디코딩이란게 뭐냐면..2진수나 뭐 어떠한 압축된 형태로 저장되어 있는 녀석을 원래로 복원시켜주는게 디코딩이다. decodeByteArray(), decodeFile() 등 여러가지 디코딩 메소드들이 있는데 내가 가진 다양한 형태의 소스에 따라 알맞는 디코딩 메소드를 사용하면 된다. 일단 bitmap을 디코딩 해봤으면 알겠지만..이미지..사진..이라는게 상당히 큰 용량을 자랑한다. 크기도 1024x768을 기본으로 할정도로..... 더보기 super super 는 상속때문에 생기게된 키워드. super() 는 부모클래스의 생성자 호출을 의미한다. 예를들어 Main에서 new Dog()를 실행하면 1번 화살표를 따라 갈 것이다. 그러면 Dog class를 생성할 때 new Dog()에서 ()에 아무 파라미터도 없으므로 2번 화살표와 같이 이동한다. 만약()에 Dog b처럼 있었다면 2번 화살표 아래 보이는 public Dog(String name, int age){ ...} 로 이동했을 것이다. 아무튼, 생성자를 보니까 super라는 녀석이 보인다. super는 부모클래스를 생성하고 초기화 하는 역할을 한다. 왜 부모 클래스를 생성할까? extends .. 즉 상속을 하기위해선 먼저 부모클래스를 만들어야하기 때문이다. 부모 없이는 자식도 없으니깐. 아.. 더보기 overriding vs overloading overloading은 함수 중복으로 정의-함수 이름만 같으면 나머지 다 달라도 오케이! overriding은 상속받은 메소드 재정의-부모와 내용만 살짝 다르게. overriding 1. 오버라이드 하고자 하는 메소드가 상위 클래스에 존재해야 함.2. 메소드 이름이 같아야 함.3. 메소드 파라미터의 개수,타입(자료형태), 리턴타입이 같아야 함.4. 메소드에 상위 메소드와 동일하거나 내용이 추가되어야 한다. ->즉, 부모한테 받은거 그대로 쓰거나 몇줄 추가 해서 약간 바꿔쓰거나! 이게 오버라이딩! 여기까지는 쉬운데.. 이제 overloading이 들어가면 이때부터 헷갈리기 시작. overloading은 다형성의 개념. 다형성이 뭔가하니..잡탕과 비슷. 이놈이고 저놈이고 다 들어갈 수 있게 만드는 것. 쉽게.. 더보기 각종(?) bar들.. 일단 그림을 보자.약간 흐린 파랑색부분이 Title bar다.진한 파랑색 부분. 시간나오고, 베터리 % 보여주는 부분은 자바 코드로 아래와 같이 치면 없어진다.123@Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);//아래 코드를 입력하면 된다.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN); 타이틀 바를 없애고 싶은 경우는 자바에서도 가능하고 xml, manifests 에서도 가능하다. 취향에 따라 코드를 추가해서 없애자. action b.. 더보기 각종 용어 정리 더보기 객체, 클래스, 인스턴스 두번이나 쓰는 내용...그만큼 OOP(객체지향 프로그래밍)에선 중요한 내용..처음이자 끝.. 클래스: 예전에도 써놨지만 설계도.. 인스턴스: 실제 제품.. 설계도인 클래스가 실체를 가진 인스턴스가 되었을 때 그것을 '객체'라 부름. 아..그래서 누군가는 객체=인스턴스 라고 하는거였군.. 근데 위와 같이 이해하려니까 도저히 안 와 닿음..제품..제품..다 똑같은 외형을 가진 제품...공장에서 찍어내는 제품을 떠올리니 독립적인걸 추구하는 객체지향의 내용을 이해하기 쉽지 않음. 그래서 사람에 비유하기로 결정! 이건 나만의 개인적인 생각. 아기(클래스가 왜 아기냐? 아기는 어릴때는 구분이 안간다. 다 똑같이 생김)한테 먹는법, 옷 입는 법, 신발 끈 매는 법 등 여러가지를 가르침(객체화). 이런식으로 '부모가 .. 더보기 각종 이론 안드로이드가 자바코드로 디자인을 구현 할 수 있음에도 불구하고 xml을 만든 이유는 애플리케이션 로직과 디자인을 분리 하기 위해서다. 마치 자바 웹 프로그래밍의 MVC패턴처럼 말이다. 이는 성능 향상과 보수에 상당히 유리하다. 더보기 이전 1 2 3 4 5 6 ··· 9 다음