animation gradation 만들기

<!-- index.html -->
<div class="anime"></div>
/* index.css */
.anime{
	height: 100px;
	display: block;
	width: 100%;
	background-image: linear-gradient(to right, #fff98f 0%, #47cf8d 50%, #fff98f 100%,);	
	background-size: 200% auto;
	animation: grdAnime 2s infinite linear;
}

@-webkit-keyframes grdAnime{
	0%{
		background-position: 0 0;
	}
	100%{
		background-position: 200% 0;
	}
}
@keyframes grdAnime{
	0%{
		background-position: 0 0;
	}
	100%{
		background-position: 200% 0;
	}
}

반응형

안드로이드 HTML 파싱하기

JSoup을 사용해서 하면 간단하게 사용할 수 있다.

자바에서도 위에 사용하는 소스를 통해서 이요할 수 있지만, 안드로이드를 통해서 사용할 것이기 때문에 Gradle 을 통해 설치를 해 보겠다.

gradle 의 build.gradle (Module: app) 에 아래와 같은 문구를 추가합니다.

// jsoup HTML parser library @ https://jsoup.org/
compile 'org.jsoup:jsoup:1.10.3'

그리고 Gradle Sync Now를 눌러주는 것을 잊으면 안됩니다. 그래야 적용이 됩니다.

주의할점
메인화면에서 네트워크 연결을 사용하면 에러가 납니다. 메인에서 네트워크 연결을 바로 시도 하면 에러가 납니다. 이 때문에 하루를 날려 버렸습니다.

여러 예제를 보면 다들 AsyncTask를 통해서 이용하고 있습니다. 사용법도 간단하고, 예제도 있지 때문에 저도 같은 방법을 사용할 것입니다.

AsyncTask에 대한 설명이 필요하시면 IT 마이닝 블로그로 이동하기

class MainActivity 아래에

다음과 같은 코드를 추가 합니다.


private class MainPageTask extends AsyncTask<Void,Void,Void> {
    private Elements element;

    @Override
    protected void onPostExecute(Void result) {
        //doInBackground 작업이 끝나고 난뒤의 작업
        mainHello.setText(element.text());
    }

    @Override
    protected Void doInBackground(Void... params) {
        //백그라운드 작업이 진행되는 곳.
        try {
            Document doc = Jsoup.connect("http://example.com").get();
            element = doc.select("#algoList > tbody");
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }
}

사이트 example.com 를 파싱하려고 합니다.

doInBackground에서 작업을 하고 onPostExcute에서 결과가 끝나고 난 뒤의 작업을 수행합니다.

doInBackground에서 작업을 처리하려고 하면 오류가 납니다. 다른 메소드에 입력 하시는 것을 잊으면 안됩니다.

반응형

+ Recent posts