(안드로이드 개발자를 위한) 오픈소스 라이브러리 사용 가이드

Post on 16-Apr-2017

2.351 Views

Category:

Software

5 Downloads

Preview:

Click to see full reader

TRANSCRIPT

List<OnboarderPage> pages = new ArrayList<>();OnboarderPage page1 = new OnboarderPage( "Lorem ipsum", "dolor sit amet", R.drawable.planet1); OnboarderPage page2 = new OnboarderPage( "Consectetur", "adipiscing elit", R.drawable.planet2);OnboarderPage page3 = new OnboarderPage( "Proin", "hendrerit consequat", R.drawable.planet3); page1.setBackgroundColor(R.color.colorIndigo); page2.setBackgroundColor(R.color.colorTeal);page3.setBackgroundColor(R.color.colorOrange); pages.add(page1);pages.add(page2);pages.add(page3);

setSkipButtonTitle("Skip");setFinishButtonTitle("Finish");// 페이지를 화면에 설정setOnboardPagesReady(pages);

TapTargetView.showFor(this, TapTarget.forView(btnGlide, "Glide", "An image loading and caching library for Android"));

public class MyApplication extends Application { @Override public void onCreate() { super.onCreate(); CalligraphyConfig.initDefault(new CalligraphyConfig.Builder() .setDefaultFontPath("NotoSansCJK.ttc") .setFontAttrId(R.attr.fontPath) .build()); }}

public class MainActivity extends AppCompatActivity { @Override protected void attachBaseContext(Context newBase) { super.attachBaseContext(CalligraphyContextWrapper.wrap(newBase)); }}

<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" fontPath="MyCustomFont.ttf" />

<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" fontPath="MyCustomFont.ttf" tools:ignore="MissingPrefix" />

https://api.lootbox.eu/pc/kr/kunny-31603/quick-play/allHeroes/

{

"MeleeFinalBlow": "1",

"SoloKills": "937",

"ObjectiveKills": "2,124",

"FinalBlows": "2,708",

"DamageDone": "2,142,080",

"Eliminations": “6,354",

...

}

interface IOverwatch { @GET("{platform}/{region}/{tag}/{mode}/allHeroes/") Observable<Map<String, String>> getStats( @Path("platform") String platform, @Path(“region") String region, @Path("tag") String tag, @Path("mode") String mode) }

Retrofit retrofit = new Retrofit.Builder() .baseUrl("https://api.lootbox.eu/") .client(new OkHttpClient()) .addCallAdapterFactory( RxJavaCallAdapterFactory.createWithScheduler(Schedulers.io())) .addConverterFactory(GsonConverterFactory.create()) .build();IOverwatch api = retrofit.create(IOverwatch.class); Observable<Map<String, String>> stats = api.getStats("pc", "kr", "kunny-31603", "quick-play");

Glide.with(context).load(“http://image.url").into(imageView);

Glide.with(context).load(“http://image.url”) .placeholder(R.drawable.loading_spinner)

.into(imageView);

Glide.with(context).load(“http://image.url”) .placeholder(R.drawable.loading_spinner) .diskCacheStrategy(DiskCacheStrategy.NONE)

.into(imageView);

Uri uri = Uri.parse(“http://image.url“);

SimpleDraweeView draweeView = (SimpleDraweeView) findViewById(R.id.my_image_view);

draweeView.setImageURI(uri);

btnSubmit.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // Do something } });

// RxBinding

RxView.clicks(btnSubmit) .subscribe(new Action1<Void>() { @Override public void call(Void aVoid) { // Do something } });

// Skip first 5 clicks// ?!btnSubmit.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // Do something } });

RxView.clicks(btnSubmit) .skip(5) .subscribe(new Action1<Void>() { @Override public void call(Void aVoid) { // Do something } });

public class Person { String name; String address; Person(String name, String address) { this.name = name; this.address = address; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; }}

public class Person { String name; String address; Person(String name, String address) { this.name = name; this.address = address; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } @Override public boolean equals(Object o) { if (this == o) { return true; } if (o == null || getClass() != o.getClass()) { return false; } Person person = (Person) o; if (!name.equals(person.name)) { return false; } return address != null ? address.equals(person.address) : person.address == null; } @Override public int hashCode() { int result = name.hashCode(); result = 31 * result + (address != null ? address.hashCode() : 0); return result; } @Override public String toString() { return "Person{" + "name='" + name + '\'' + ", address='" + address + '\'' + '}'; }}

data class Person(val name: String, val address: String?)

// JavaString name = "kunny"; String address = null;

// Java with Support Annotations@NonNullString name = "kunny"; @NullableString address = null;

// Kotlinvar name: String = "kunny"var address: String? = null

// Java

HashMap<String, String> map = new HashMap<>();map.put("Foo", "foo"); map.put("Bar", "bar"); map.put("Baz", "baz"); String value = map.get("Foo");

// Kotlinval map = hashMapOf( "Foo" to "foo", "Bar" to "bar", "Baz" to "baz") val value = map["Foo"]

public class MainActivity extends AppCompatActivity { Button btnCalligraphy; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btnCalligraphy = (Button) findViewById(R.id.btn_calligraphy); btnCalligraphy.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { // Do something } }); }}

class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) btn_calligraphy.setOnClickListener { // Do something } } }

buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:2.2.2' // Add below classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.0.4' } }

apply plugin: 'com.android.application'// Mandatoryapply plugin: 'kotlin-android'// For Kotlin Android Extensionsapply plugin: 'kotlin-android-extensions'android { // Add Source set sourceSets { main.java.srcDirs += 'src/main/kotlin' } } dependencies { // Add below compile 'org.jetbrains.kotlin:kotlin-stdlib:1.0.4'}

class Foo {

public void foo() { ... }

}

class Foo {

public void foo() { ... }

public void bar() { ... } }

top related