300x250
반응형

안녕하세요.

우리가 필요에 따라서 특정업체들의 홍보 알람등을 받게 되는데요. 이게 나중에 필요가 없어지면 안받고 싶은데.. 잘 모르는 분들이 꽤 있어서 공유 하려고 합니다.

 

오늘은 카카오톡 메세지 알람을 차단 하는 방법을 알려 드립니다.

 

참고로 저는 지금은 받고 싶지 않은 휴대폰 관련 광고 알림을 차단 하려고 합니다



차단하고 싶은 알림 메세지를 선택 하세요. 

 

 


업체의 프로필 부분을 선택 하세요. 

 

반응형

프로필에 들어가면 채널표시 부분을 선택 하세요.

 

 


그러면 채널 차단 이라는 다이얼로그 창이 생성 됩니다.

차단을 선택 해주세요. 

 

 


그러면 아래에 노란색 상자가 생성 되요. 

나중에 필요할 때 다시 알림받기를 선택 하시면 됩니다.   

 

728x90

그리고 채팅방을들어가면 역시 알림톡 차단이 되었다는 공지사항이 발생 되어 있습니다.

이렇게 하면 불필요한 알림을 차단 하실 수 있으세요!!  

 

 

끝!

728x90
300x250
반응형

전체화면의 사이즈를 상황에 따라서 동적으로 사이즈를 조절 하기 위한 예제.

 

레이아웃 설정 

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <TextView
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:text="Hello World!"
        android:background="#ff0022"
        android:gravity="center"
        android:textColor="@color/cardview_light_background"
        app:layout_constraintBottom_toTopOf="@id/guidelineHorizontal"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="@id/guidelineVertical"
        app:layout_constraintTop_toTopOf="parent" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/test"
        android:text="클릭"
        app:layout_constraintEnd_toEndOf="parent"
        />

    <androidx.constraintlayout.widget.Guideline
        android:id="@+id/guidelineVertical"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        app:layout_constraintGuide_percent="0.2" />

    <androidx.constraintlayout.widget.Guideline
        android:id="@+id/guidelineHorizontal"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        app:layout_constraintGuide_percent="0.7" />



</androidx.constraintlayout.widget.ConstraintLayout>

 

이렇게 레이아웃만 설정 하면 TextView의 전체 사이즈가 가이드라인을 통해서 조절이 된다.

이런식으로 수평/수직의 퍼센트를 설정함으로 해당 가이드라인을 기준으로 TextView을 그리고 있다.

 

그럼 상황에 따라서 TextView의 사이즈가 조절되야 하는 경우가 있다.

실제 실무에서도 필요한 기능이므로 그럴 때는 코드단에서 처리를 해줘야 한다.

 

아래와 같이 해보자.

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        var btn: Button = findViewById(R.id.test)
        btn.setOnClickListener {
            changeGuideline(0.5, 0.8)
        }
    }

    private fun changeGuideline(ver:Double, hor:Double) {
        val gd1: Guideline = findViewById(R.id.guidelineHorizontal)
        val gd2: Guideline = findViewById(R.id.guidelineVertical)

        gd1.layoutParams = (gd1.layoutParams as ConstraintLayout.LayoutParams).apply {
            guidePercent = ver.toFloat()
        }

        gd2.layoutParams = (gd2.layoutParams as ConstraintLayout.LayoutParams).apply {
            guidePercent = hor.toFloat()
        }
    }
}

 

동적인 상황을 고려하여 클릭 했을 경우 변경 되도록 처리.

위와 같이 사이즈가 조절 되었음.

 

참조 해서 잘 사용해보자..기록기록.

728x90
300x250
반응형
728x90

프로젝트시 특정모듈에 따라서 기능을 on/off해야 하는데 메타데이터에서 컨트롤 하는게 더 효율적으로 생각되어 메타데이터에서 설정후 실제 코드에서 읽어오는 방법을 정리 하였다.

 

매니페스트 설정

<manifest>
......
	<meta-data
        android:name="testEnable"
        android:value="true"
    />
</manifest>

메니패스트에 사용할 메타데이터를 등록한다.

나의 목표는 testEnable이 true이면 특정 기능을 사용하고 없으면 사용하지 않는 것이다.

 

private fun getTestEnable(): Boolean {
	return packageManager.getApplicationInfo(
            packageName,
            PackageManager.GET_META_DATA)
            .metaData
            .getBoolean("testEnable")
}

 

만약에 testEnable 메타데이터가 없는 경우는 무조건 false로 리턴한다.

728x90
300x250
반응형
728x90

출퇴근용으로 집에서 지하철역까지 가기 위해서 자전거가 필요 하게 되었네요.

정말 무수한 고민끝에 MTB를 구매 하였습니다.

 

전기자전거, 미니벨로, MTB까지 정말 엄청엄청 고민했습니다.

개인적으로 자전거 타는거를 좋아해서 운동도 겸할겸 해서 MTB가 가장 최적이여서 구매 하였네요.

 

오반장 바이시클에서 구매를 하였고 이전에 몇번 네이버톡을 통해서 질문을 하였습니다.

최종적으로 미니벨로와 MTB중에 고민을 하였고 몸무게도 있고해서...-_-;; ..

 

먼저 배송도 굉장히 빨랐고, 최종 주문후 3일만에 도착한거 같습니다.

넉넉한 사은품까지 와서 좋았어요!

 

참고로 저는 키는 180cm / 90kg이여서 L사이즈로 구매 하였습니다. 원하는 색상이 XL에 있었지만.. 포기 ㅠㅠ

 

이렇게 어마어마 하게큰 박스가...ㅋㅋ

 

 혹시 모르니 조심조심 칼로 잘랐습니다. 괜히 깊게 자르면 내부 자전거가 손상될거 같아서 ...  

 

 

참고로 조립은 매우 쉬웠어요.

1. 핸들조립

2. 패달조립

3. 안장설치

 

이 세개만 하면 끝납니다!! 안장은 자세헤 따라서 잘 조절해주세요

 

 

 

짜잔~ 최종 완성입니다.

 

생각보다 큰거 같았고. 제가 예전에 탔던 사브 자전거 보다 뭔가 더 큰느낌이고 . 그리고 브레이크나 서스펜션은 확실히 요즘 자전거가 좋더라구요!! 

 

이렇게 사은품을 주셨고.. 아쉽게 사진은 못찍었지만 헬멧도!! 주셨어용

헬멧 정말 생각보다 좋은걸 주셨고 뒤에 불도 나오네요 ㅎㅎㅎ 좋아요

 

워낙에 오랜만에 자전거를 타는거라서 주말에 익숙해지도록 하고 출퇴용으로 일단 시작 후 운동도 같이 하려고 합니다.

아 그리고 무게는 14키로정도인데 개인적으로 가볍다고 생각했습니다!

 

그럼 자전거 구매 하실분들 참고하시고 즐거운 라이딩도 하세요.

 

728x90

 

728x90
300x250
반응형
728x90

안녕하세요.

오늘은 스마트폰 용량을 줄이는 방법중 한가지 방법을 소개 하려고 합니다.

사진첩에 있는 사진이나 동영상을 없애기 아까운데 용량은 부족할때가 있습니다.

그때 그나마 효율적인 방법으로 용량을 확보 하는 방법을 소개 할게요.

 

카카오톡에 다운로드 받은 사진이나 동영상을 제거 하면 용량을 꽤 확보 가능합니다.

 

생각보다 지인들을 통해서 전달 받는 사진이나 동영상이 꽤 되요. 해당 내용을 다운로드 받아도 따로 카카오톡 대화방에는 해당 파일이 남겨 있습니다.

 

다운로드 받은 후에 카카오톡방에 있는 사진과 동영상을 제거 하면 됩니다. 제거 하지 않으면 이중으로 다운받은 격이 되버리거든요.

 

순서 대로 따라해보세요!

 

먼저, 단톡 또는 개인톡방을 들어 갑니다.

그러면 화면에 빨간 상자로 표시한 부분을 터치하세요.

 

그리고 위 화면이 나오면 역시 빨간색 상자로 표시 되어 있는 "톱니바퀴"를 터치 하세요!!

 

그러면 채팅방 설정 화면이 나오는데. 맨 아래로 스크롤 해주세요!

 

자! 여기입니다. 보시면 사진과 동영상 파일의용량이 표시 되어 있어요. 해당 부분들을 삭제 하면 그 만큼의 용량을 확보 하는거에요.

 

전체 삭제 할거면 "전체 파일 모두 삭제"를 누르고, 사진만 할건지 혹은 동영상만 삭제 할거면 삭제 하고싶은 부분을 삭제 하시면 됩니다.

 

 

 

위 처럼 나오면 모두 삭제 버튼을 누르시면 됩니다.

 

그럼 짜잔~ 모두 삭제가 되면서 용량이 확보 되었어요.

참고로 저부분을 삭제 한다고 이미 내 사진첩에 저장되어 있는 파일이 삭제 되진 않습니다.

그리고 지인들이 보내준 사진이나 동영상을 클릭할때 다운로드가 되는 것이니 필요 없는 것은 굳이 터치해서 다운로드 하실필요 없습니다.

 

그럼 다음에는 또 다른 방법으로 용량을 확보 하는 방법을 알려 드릴게요!

 

모두 즐겁고 유익하게 스마트폰을 활용해봐요!!

728x90
300x250
반응형

친구와 둘이 오랜만에 바다로 여행을 다녀왔습니다.

이곳은 평소에도 일년에 2~3번 꼭가는 곳이고 친구 이외에도 가족들과도 가는 곳입니다.

조용한곳을 워낙 좋아해서 자주 찾는 곳이 되었네요!!

그곳은 강원도 고성에 있는 청간해변!!

다른곳에 비해서는 작은 해안가이지만 모래 알갱이가 크기 때문에 모래가 묻어도 털어내기도 편합니다.

8월18일 퇴근 후 금요일 저녁에 출발을 하였습니다.!!

출발직전 찍는걸 깜빡 ㅠㅠ

생각나서 바로 T-MAP의 아리아에게 빨리 캡쳐해달라고 부탁!

저녁에 출발하면 막히지 않기 때문에~~ 고고

2시간이 살짝 넘은 시간에 도착하더군요!

경기도 남양주시에서는 서해보다는 동해가 가기 훨씬 편해졌습니다.

아무래도 양양고속도로가 뚫리면서..확실히 편해졌어요!

달리고 달려서~~~

드디어 도착 하였습니다.

이번에는 차박이지만 차박텐트 없이..그냥 이렇게 ㅎㅎ

라면과 + 쥐포를 안주 삼아 맥주를 꿀꺽 마셨습니다.

다음날을 위해서 차에서 취침!! 참고로 여기는 주차 무료입니다!!

728x90

이렇게 사람이 없네요.. ㅎㅎㅎ

그래도 점심쯤되니 저기 사진에 보이는 테이블들은 전부 사용중으로 바뀝니다!!

또한 사진에 보이듯이 모래도 알갱이가 크다보니깐 나름 괜찮아요!!

열심히 물에서 놀고! 생각보다 춥지 않아요.

다만 물이 깊은곳이 있으니 항상 조심해야 하고 무조건 구명조끼 착용은 필수랍니다.

저녁은 간단히 고기와!! 맥주!!

다음날 일요일에는 일찍 약속이 있어서 새벽에 급 출발 하였습니다.

정리하고 보니 5시에 출발하게되었어요.

2시간10분정도 걸리네요!!

잘놀다왔습니다.

장/단점을 한번 정리 해볼게요.

장점

  1. 주차 무료
  2. 화장실 365일24시간 오픈!!
  3. 근처가 조용함
  4. 근처 유명 해수욕장이 많음 ( 아야진/봉포 등등 )

단점

  1. 주차장이 작음
  2. 근처에 맛집이 없음.

그럼 이만!! 모두 언제나 즐거운 휴가 및 연휴 되세요

 

728x90
300x250
반응형

현재 설정 관련 레이아웃을 만들다가 표시해주는 상자를 곡선으로 그리고 싶었다.

아무래도 더 이쁘기도 하고 벤치마킹하는 유튜브나 다른 플레이어들도 코너를 많이 적용 했기 때문이다.

 

먼저. 나는 constraintLayout을 사용하는데 이 contraintLayout에 corner를 적용하고 싶다.

먼저 일반적으로 사용 할때.. 이렇게 사용 하였음.

<androidx.constraintlayout.widget.ConstraintLayout
        android:layout_width="@dimen/_180sdp"
        android:layout_height="wrap_content"
        android:background="#212121"
        android:visibility="visible"
        android:layout_marginBottom="@dimen/_10sdp"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintBottom_toBottomOf="parent">
        
        <TextView
           ......
        />
</androidx.constraintlayout.widget.ConstraintLayout>

자 이런식으로 한 후에 실행을 시키면 단순히 네모난 모양으로 출력이 된다.

나는 네모난 모양을 곡선으로 변경하고 싶을때 다음과 같이 사용 하였다.

 

view_card.xml

<?xml version="1.0" encoding="utf-8"?><!-- 다이얼로그 배경 -->
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <corners android:radius="10dp" />
    <solid android:color="#383838" />
</shape>

위에 내용은 corner를 그려주는 레이아웃이다. 이 레이아웃을 contraintLayout에 background에 적용하면된다.

여기서 참고 할 것은. view_card.xml은. drawable아래에 생성을 해주어야한다!!!

 

아래와 같이 적용하면 이제 네모가 아닌 코너가 만들어진 상태로 화면에 보여준다.

<androidx.constraintlayout.widget.ConstraintLayout
        android:layout_width="@dimen/_180sdp"
        android:layout_height="wrap_content"
        android:background="@drawable/view_card"
        android:visibility="visible"
        android:layout_marginBottom="@dimen/_10sdp"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintBottom_toBottomOf="parent">
        
        <TextView
           ......
        />
</androidx.constraintlayout.widget.ConstraintLayout>

constraintLayout에 background="#212121" -> @drawable/view_card 로 변경하면 끝!

728x90
300x250
반응형

코틀린을 사용하다 보면 random함수가 필요한 경우가 종종 있다.

그래서 랜덤함수의 사용방법을 기록해보기로 한다.

 

1. random()

fun main() {
	val range = (0..45)
    
    println(range.random())
    println(range.random())
}

결과 .

0 부터 45까지의 랜덤한 함수가 출력되었다.

총 6개의 랜덤함수를 만들어 보자.

fun main() {
	val range = (0..45) 
    var cnt = 0
    
    while(cnt < 6) {
        print(range.random()  )    
        print(" ")
        cnt++
    }   
}

 

0 부터 45번까지 총 6개의 데이터를 생성 하여 나열하였다.

 

위 내용은 정해진 패턴으로 랜덤 숫자를 생성한다. 그래서 매번 처음 동작 시킬때마다 같은 숫자대역이 나올확률이 있다.

이러한 정해진 패턴을 무시하는 랜덤함수를 사용하자.

 

2. SecureRandom

fun main() {
	val range = SecureRandom()
    println(range.nextInt(45))  
 
}

nextInt(45)는 0부터 45까지의 랜덤숫자를 출력 하도록 설정 한다.

 

똑같이 1번내용 처럼 살짝 응용을 하면 원하는 개수를 지정 할수 있고, 중복되지 않다던지, 특정 숫자를 제외 한다던지의 내용을 추가하여 구현 할수있다.

 

상황에 따라 다르지만 되도록이면 secureRange를 사용하는게 좋을 것 같ㄷ.

728x90

+ Recent posts