본문 바로가기

Android111

[JAVA][Android] ScrollView안에서 드래그 앤 드롭 사용하기 안녕하세요. 오늘은 스크롤뷰 안에서 드래그 앤 드롭을 사용하는 방법에 대하여 알아보겠습니다. https://stickode.tistory.com/511 (해당 포스트와 이어집니다.) 그냥 드래그 앤 드롭 구현하듯이 onTouchListener로 구현하면 되는거 아니냐 라고 하실 수 있는데 위 영상을 보시면 알겠지만 스크롤 뷰 안에 그냥 드래그 앤 드롭을 구현 시 ScrollView의 스크롤 이벤트와 드래그 앤 드롭의 터치 이벤트가 겹쳐 잘 실행되지 않게 됩니다. 그럼 시작하겠습니다. 일단 xml파일을 수정해줍니다. 스크롤 뷰를 사용해 ConstraintLayout을 감싼것을 확인할 수 있습니다. 다음으로 자바 파일입니다. 저번에 제작한 파일에서 LinearLayout 부분을 ConstraintLayout.. 2022. 8. 14.
[JAVA][Android] 동적으로 생성한 View를 삭제하기 안녕하세요. 오늘은 지난 포스팅에 이어 동적으로 생성한 View를 역순으로 삭제하는 방법에 대해 알아보겠습니다. https://stickode.tistory.com/500 (해당 포스트와 이어지는 내용입니다. ) 역순으로 삭제한다는 의미는 View가 생성될 때 1,2,3 이렇게 생성이 되었다면 삭제될 때는 3,2,1 이렇게 삭제된다는 뜻입니다. 먼저 생성한 View를 삭제하기 위해 View를 생성할 때 각각 View에 id를 할당해 주어야 합니다. //MainActivity.java public class MainActivity extends Activity implements View.OnTouchListener { private final int DYNAMIC_VIEW_ID = 0x8000; // V.. 2022. 8. 2.
[JAVA][Android] 동적으로 View 여러 개 추가 후 해당 View 드래그 앤 드랍으로 이동시키기 안녕하세요. 오늘은 안드로이드에서 VIew를 동적으로 여러개 추가하고, 해당 View들을 드래그 앤 드랍으로 이동시키는 것을 해보겠습니다. 해당 기능은 가구 인테리어 배치나, 좌석배치도에서 좌석을 원하는 위치에 배치시키고 싶을 때 사용할 수 있습니다. 바로 레이아웃 파일부터 보겠습니다. 화면을 보시는 것과 같이 View를 추가하는 버튼과 삭제하는 버튼을 생성하였습니다. (버튼 삭제부분은 다음 시간에 알아볼 예정입니다.) 그리고 두 버튼 아래에 LinearLayout을 배치해 버튼이 추가될 공간을 만들어 줍니다. 다음으로 Java 파일을 보도록하겠습니다. //MainActivity.java public class MainActivity extends Activity implements View.OnTouc.. 2022. 7. 18.
[JAVA][Android] xml파일 없이 Java 언어 만을 사용하여 화면 제작 안녕하세요. 오늘은 java 언어만을 사용해 안드로이드의 화면을 구성하는 방법을 가져왔습니다. 일반적으로 안드로이드의 화면 구성을 할 때에는 xml 화면을 제작한 후, java 파일 내에서 setContentView에 xml 파일을 설정해 사용하는데요. 오늘은 xml 파일 없이 자바로만 안드로이드의 화면 구성을 해보겠습니다. 해당 자바 파일 입니다. //MainActivity.java public class MainActivity extends AppCompatActivity { TextView tv;// TextView 참조변수 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);.. 2022. 7. 3.
[Kotlin][Android] TextInputLayout 사용하여 로그인 화면 만들기 앱을 개발할때마다 항상 만들게 되는 로그인화면 좀더 간단하고 빠르게 그리고 무엇보다 직관적으로 이쁘게 만들수는 없을까? 고민하게 되는데요. 안드로이드의 Material Library에서 TextInputLayout을 제공해 주고 있습니다. 그럼 인제 사용법을 한번 알아볼까요? 먼저 라이브러리를 추가해줍니다. build.gradle implementation 'com.google.android.material:material:1.2.1' 먼저 EditText에 Hint를 보여주고 포커스가 올때 Hint값이 TextInputLayout의 라벨로 이동합니다. activity_main.xml TextInputLayout 의 스타일은 기본적으로 두가지가 있습니다. 위에 보이는 스타일이 기본 스타일인 FilledB.. 2021. 12. 15.
[Java][Android] Gmail를 이용하여 메일 송신 하기 이번에는 Gmail 을 이용하여 메일을 송신해보도록 하겠습니다. 사용 전) import activation.jar additionnal.jar mail.jar 위의 파일을 다운로드를 받아 아래의 경로에 저장합니다. 그 후 우클릭을 통해 "Add As Library"를 클릭해서 import 를 합니다. 모든 .jar 파일을 import 시킵니다. 사용 전) 구글 계정 보안 수준 하향 구글 계정 보안 수준을 아래 사진과 같이 사용 안함 -> 사용 으로 변경해야 정상적인 메일 송신이 가능합니다. https://stickode.com/detail.html?no=2617 스틱코드 stickode.com 그 후 위의 포스트를 즐겨찾기 하셔서 GmailSender.java , MainActivity 를 불러오시면 G.. 2021. 12. 2.
[Java][Android] 이미지 드래그앤 드롭 기능 구현 이번에는 이미지를 안드로이드 화면에서 드래그 앤 드롭하는 기능을 구현해 보겠습니다. 우리가 자주 사용하지만 구현해본 경험은 많지 않을텐데요 시작해볼까요? 이미지 개체를 두개의 이미지 뷰 사이로 이동할 수 있는 기능입니다. 일단 이미지를 이동할 것인지 여부를 판단해야 합니다. 이것을 판단하는 기준은 오랫동안 클릭하는 것입니다. OnLongClickListener 인터페이스를 구현하기 위해 클래스를 하나 만듭니다. OnLongClickListener 는 화면에서 이미지 개체를 일정 시간 동안 누르게 되면 클릭 이벤트를 받을 수 있습니다. onLongClick 함수의 인수로 넘어온 View 객체에 값을 채우는데 startDrag() 함수를 이용합니다. startDrag() 함수에 필요한 값들을 채우게 되면 드.. 2021. 12. 1.
[Java][Android] 안드로이드 Library만들기 안드로이드 앱을 개발하면서 다양한 오픈소스 라이브러리를 사용할 때가 많죠? 항상 가져다 쓰는데 익숙해질 때쯤 이런 궁금증은 안생기셨나요? "내가 직접 라이브러리를 만들 수는 없을까?" 오늘은 바로 라이브러리를 직접 만드는 방법에 대해서 포스팅을 해보겠습니다. 먼저 새 프로잭트를 생성해 주세요. 보여지는 부분이 없으므로 No Activity를 지정해 줍니다. 그리고 프로젝트의 패키지명, 이름을 지정합니다. LibraryTest로 지정해 주겠습니다. build.gradle 수정 1. plugins id 수정 plugins { id 'com.android.application' } ---> 변환 plugins { id 'com.android.library' } 2. defaultConfig의 applicati.. 2021. 11. 30.
[Kotlin][Android] 네트워크 모니터링 기능 안녕하세요. 이번 시간에는 사용자가 네트워크 환경에서 벗어난 경우에 알림 메시지를 띄워주는 기능을 구현하도록 하겠습니다. 우선 인터넷을 감지하는 녀석이 누군지 알아봐야겠죠? 안드로이드에서는ConnectivityManager Class를 통해 사용자의 모바일 기기가 인터넷에 연결되어 있는지 확인하고 연결되어 있다면 어떤 유형의 연결이 설정되어 있는지 확인할 수 있으며 추가적으로 인터넷이 끊긴 상태또한 알 수 있습니다. https://developer.android.com/training/monitoring-device-state/connectivity-status-type?hl=ko 연결 상태 및 연결 측정 모니터링 | Android 개발자 | Android Developers 연결 상태 및 연결 측정 모.. 2021. 11. 27.