반응형

build.gradle

// slide animation
    implementation 'com.ncorti:slidetoact:0.3.0'

xml

<com.ncorti.slidetoact.SlideToActView
                    android:id="@+id/slide"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    app:outer_color="#3F51B5"
                    android:elevation="10dp"
                    app:text="슬라이드 버튼" />

Activity

 SlideToActView slide;
 
 ...

slide = findViewById(R.id.slide);

slide.setOnSlideCompleteListener(new SlideToActView.OnSlideCompleteListener() {
            @Override
            public void onSlideComplete(@NonNull SlideToActView slideToActView) {
                
                // 이벤트 발생 시키는 부분

                slide_driver.resetSlider();
            }
        });

결과

slidetoact 결과

반응형
반응형

크롤링(crawling)

 - 크롤링은 웹페이지의 내용을 그대로 가져와 데이터를 추출하는 행위 입니다.

 

서울날씨

위 사진은 현재 서울기준 네이버 날씨이며, 포커싱 된 부분의 글자를 추출하여 기기 화면으로 가져오는 코드를 Jsoup 라이브러리를 통하여 작성해보겠습니다.


build.gradle

// jsoup
    implementation 'org.jsoup:jsoup:1.13.1'

 

xml

<TextView
        android:id="@+id/tv_temper"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:text="온도"
        android:gravity="center"
        android:textSize="15sp"/>

MainActivity

// 날씨 크롤링
    TextView tv_temper;
    String tem;
    private String URL = "https://m.search.naver.com/search.naver?sm=mtp_sly.hst&where=m&query=%EC%84%9C%EC%9A%B8+%EB%82%A0%EC%94%A8&acr=1";
    
    ...
    
     tv_temper = findViewById(R.id.tv_temper);
        final Bundle bundle = new Bundle();

        new Thread() {
            @Override
            public void run() {
                try {
                    Document doc = Jsoup.connect(URL).get();
                    Elements temper = doc.select(".temperature_text");
                    tem = temper.get(0).text().substring(5);
                    bundle.putString("temperature", tem);

                    Message msg = handler.obtainMessage();
                    msg.setData(bundle);
                    handler.sendMessage(msg);


                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }.start();
        
        ...
        
         // 날씨 handler
    Handler handler = new Handler() {
        @Override
        public void handleMessage(@NonNull Message msg) {
            Bundle bundle = msg.getData();
            tv_temper.setText("" + bundle.getString("temperature") + "도");
        }
    };
반응형
반응형

build.gradle

// cardview
    implementation 'androidx.cardview:cardview:1.0.0'

XML

    <androidx.cardview.widget.CardView
        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="200dp"
        app:cardCornerRadius="26dp"
        android:layout_margin="20dp"
        android:backgroundTint="#FBEB58"
        app:cardElevation="8dp">
        
        // 내용
        
    </androidx.cardview.widget.CardView>

결과

Cardview

내용 추가 시 Cardview 내부에 Layout 을 추가한 후에 사용 하시면 됩니다.

반응형
반응형

Android JNI 관련 설정 후 빌드과정에서 발생한 에러

 

Android.mk 파일에서 아래 코드 추가 

LOCAL_PATH := $(call my-dir)
반응형

+ Recent posts