본문 바로가기

Android36

현재화면을 캡쳐해서 공유하기 btnShare.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { // 현재화면을 캡쳐해서 공유하기 View view1 = getWindow().getDecorView(); // 현재 화면을 가져옴 // 현재 화면을 가져오는 방법은 여러가지가 있지만, 여기서는 가장 간단한 방법을 사용 view1.setDrawingCacheEnabled(true); // 캐시를 사용하도록 설정 // 캐시를 사용하면, 화면이 바뀌어도 캐시를 사용하기 때문에 화면이 바뀌지 않는다. Bitmap captureView = view1.getDrawingCache(); // 캐시를 비트맵으로 변환 // 비트맵이란 픽셀로 .. 2023. 3. 29.
android Spannable을 이용한 TextView에 버튼 만들고 버튼을 클릭하면 선택한 Spannable만 제거 결론 : Spannable의 클릭 빌드할때 오버라이딩한 클릭메소드를 적용해서 해결했다. 주석부분은 시행착오 참고용 void getAlcoholNetworkData() { Retrofit retrofit = NetworkClient.getRetrofitClient(MyRecipeWriteSecondActivity.this); CreatingApi api = retrofit.create(CreatingApi.class); SharedPreferences sp = getSharedPreferences(Config.PREFERENCE_NAME, MODE_PRIVATE); String accessToken = "Bearer " + sp.getString(Config.ACCESS_TOKEN, ""); offset .. 2023. 3. 24.
Android Textview 아이템 클릭이벤트 [Spannable] 첫번째 적용할XML파일에 TextView에 버퍼타입설정 android:bufferType="spannable" 두번째 코드에 텍스트뷰의 상태를 확인하는 부분을 추가해야함 리스너같은거인듯 textView.setMovementMethod(new android.text.method.LinkMovementMethod().getInstance()); // 클릭이벤트를 사용하기 위해 필요한 코드 // 이거 안하면 클릭이벤트가 안먹힘 전체코드 package com.leopard4.testingapp; import androidx.annotation.NonNull; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import andr.. 2023. 3. 23.
fragment에서 activity 로 이동할때 LifeCycle을 Log로 확인 Log.D는 플래그먼트의 라이프사이클 Log.I는 액티비티의 라이프사이클 탭바의 화면은 플래그먼트로 구성된것이고 리사이클러뷰의 아이템 한개를 클릭하면 뜨는것은 액티비티이다. 아래코드는 진행중인 프로젝트에서 테스트한것이므로 코드가 지저분하니 안보는걸 추천 FirstFragment 코드 package com.leopard4.alcoholrecipe; import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; import android.content.res.Configuration; import android.os.Bundle; import android.util.Log; impor.. 2023. 3. 21.
Retrofit2 cache & Wireshark packet capture Q: Retrofit 2에서 api 인터페이스를 생성할 때 @Body 부분에 객체를 넣어야 한다는 것을 알고 있어서 Map으로 임시 객체를 생성하여 사용하는 방법을 알고 있습니다. 그러나 개체를 정의하는 클래스를 사용하는 경우 해당 개체에는 여러 멤버 변수가 있습니다. 그럴 수 있습니까, 아니면 그 중 하나만 사용할 수 있습니까? A: 예, Retrofit 2에서 요청 본문을 생성할 때 클래스에서 하나의 멤버 변수만 사용할 수 있습니다. 이렇게 하려면 요청 본문에서 사용하려는 멤버 변수만 포함하는 새 클래스를 만들 수 있습니다. 예를 들어 여러 멤버 변수가 있는 클래스가 있지만 요청 본문에서만 변수를 User사용하려는 경우 name다음과 같이 새 클래스를 만들 수 있습니다. 코틀린코드 복사 public .. 2023. 3. 20.
retrofit2 okhttp response의 글자가 깨진다면 유니코드가 인코딩이 제대로 되지않았기 때문이다. try { String errorBody = response.errorBody().string(); // 에러바디를 String으로 변환 JSONObject jsonObject = new JSONObject(errorBody); // String을 JSON으로 변환 String errorMessage = jsonObject.getString("error"); // JSON에서 error 키의 값을 가져옴 Log.i("REGISTER_ACTIVITY1", errorMessage); // else if errorMessage == 이미 존재하는 이메일입니다. 이런식으로 // 오류 메시지 처리 } catch (Exception e) { // 에러바디를 Strin.. 2023. 3. 16.
뷰 결합 FragmentBinding, 결합클래스의 개념 개념 findViewById를 대체하는 새로운 방식 뷰 결합 기능을 사용하면 뷰와 상호작용하는 코드를 쉽게 작성 모듈에서 사용 설정된 뷰 결합은 모듈에 있는 각 XML 레이아웃 파일의 결합 클래스를 생성 결합클래스란 쉽게말해 XML과 JAVA코드를 하나로 묶은 클래스라는것 바인딩 클래스의 인스턴스에는 상응하는 레이아웃에 ID가 있는 모든 뷰의 직접 참조가 포함됩니다. 설정 build.gradle에 다음을 입력 android { ... viewBinding { enabled = true } } 결합 클래스를 생성하는 동안 레이아웃 파일을 무시하려면 tools:viewBindingIgnore="true" 속성을 레이아웃 파일의 루트 뷰(메인액티비티XML을 의미한다)에 추가하세요. ... 사용 모듈에 뷰 결합.. 2023. 2. 23.
Android Fragment lifeCycle 2023. 2. 23.
Android 내 현재 위치를 기반으로 주변 상점검색, GPS, 구글맵, retrofit2 https://github.com/leopard4/MyLocApp/tree/master 비공개 레파지토리 입니다. 2023. 2. 16.
Android [포스팅앱 1.0] Glide 리사이클뷰 좋아요 mySQL, mySQL S3 포스팅 insert, 카메라 앨범 권한, 로그인 회원가입 자동로그인, ProgressDialog, Retrofit2 restful API 2.0 버전에서는 탭바를 이용한 화면전환 리사이클뷰 스크롤을 이용한 페이징처리를 다룰것 https://github.com/leopard4/PostingApp GitHub - leopard4/PostingApp Contribute to leopard4/PostingApp development by creating an account on GitHub. github.com 2023. 2. 15.
Android [파파고번역앱] 라디오 버튼, Volley 매인액티비티 package com.leopard4.translateapp; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.appcompat.app.AppCompatActivity; import android.content.Intent; import android.os.Bundle; import android.util.Log; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.Button; import android.widget.EditText; import a.. 2023. 2. 13.
Android [AWS람다 메모앱] Retrofit2를 이용한 프론트엔드 CRUD, 로그인,회원가입,메인리사이클뷰,메모생성,조회,수정,삭제 XML 및 파일구성 앱기능 MemoApi package com.leopard4.memoapp.api; import com.leopard4.memoapp.model.Memo; import com.leopard4.memoapp.model.MemoList; import com.leopard4.memoapp.model.Res; import retrofit2.Call; import retrofit2.http.Body; import retrofit2.http.DELETE; import retrofit2.http.GET; import retrofit2.http.Header; import retrofit2.http.POST; import retrofit2.http.PUT; import retrofit2.http.Pat.. 2023. 2. 10.