์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- java
- db
- Pandas
- ํ์ด์ฌ
- ์๋๋ก์ด๋ ์คํ๋์ค
- ์๋ฐํ๋ก๊ทธ๋๋ฐ
- ํ๋ค์ค
- ์๋ฐ์ด๋ณด
- ๋ฐ์ดํฐ๋ฒ ์ด์ค
- JavaScript
- Streamlit๊ธฐ๋ณธ
- ์คํธ๋ฆผ๋ฆฟ ๊ธฐ๋ณธ
- serverless
- MySQL
- ์๋๋ก์ด๋ ์ฑ ๊ฐ๋ฐ
- RESTful API
- ์๋ฐ
- ์๋ฐ์คํฌ๋ฆฝํธ ๊ณต๋ถ
- ์๋ฐ๊ณต๋ถ
- ํ๋ค์ค๊ณต๋ถ
- ์๋ฐ์คํฌ๋ฆฝํธ
- ์คํธ๋ฆผ๋ฆฟ
- ์๋ฐ๊ธฐ์ด
- ์น๋์๋ณด๋ ์ ์
- Streamlit๊ธฐ์ด
- streamlit
- Matplotlib ๊ธฐ์ด
- ํ์ด์ฌ๊ณต๋ถ
- Android
- ์น๋์๋ณด๋ ๊ธฐ์ด
- Today
- Total
ruriruriya
[Android] ์๋๋ก์ด๋ - ์ด๋ฏธ์ง ์ฒ๋ฆฌ๋ฅผ ์ํ Glide ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฌ์ฉ๋ฒ ๋ณธ๋ฌธ
[Android] ์๋๋ก์ด๋ - ์ด๋ฏธ์ง ์ฒ๋ฆฌ๋ฅผ ์ํ Glide ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฌ์ฉ๋ฒ
๋ฃจ๋ฆฌ์ผใ 2024. 1. 3. 00:20
Glide๋ ์๋๋ก์ด๋ ์ฑ์์ ์ด๋ฏธ์ง ๋ก๋ฉ๊ณผ ๋์คํ๋ ์ด๋ฅผ ์ํ ๊ฐ๋ ฅํ ์คํ ์์ค ์ด๋ฏธ์ง ๋ก๋ฉ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ค. ์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๋์ ์ฑ๋ฅ๊ณผ ์ ์ฐ์ฑ์ ์ ๊ณตํ์ฌ ์์ ์ ์ผ๋ก ์ด๋ฏธ์ง๋ฅผ ๋ก๋ํ๊ณ ํ์ํ ์ ์๋๋ก ๋์์ค๋ค.
ํน์ง
- ์๋ ๋ฉ๋ชจ๋ฆฌ ๋ฐ ๋์คํฌ ์บ์ฑ: Glide๋ ์ด๋ฏธ์ง๋ฅผ ์๋์ผ๋ก ๋ฉ๋ชจ๋ฆฌ์ ๋์คํฌ์ ์บ์ฑํ์ฌ ๋ฐ๋ณต์ ์ธ ๋ค์ด๋ก๋๋ฅผ ๋ฐฉ์งํ๊ณ ์ฑ ์ฑ๋ฅ์ ํฅ์์ํจ๋ค.
- ์ ์ฐํ API: ๊ฐ๋จํ ์ฝ๋๋ก ์ด๋ฏธ์ง ๋ก๋ฉ์ ์ํํ ์ ์์ผ๋ฉฐ, ํ์์ ๋ฐ๋ผ ํฌ๊ธฐ ์กฐ์ , ๋ณํ ๋ฐ ์ ๋๋ฉ์ด์ ํจ๊ณผ๋ฅผ ์ฝ๊ฒ ์ ์ฉํ ์ ์๋ค.
- ๋ก๋ฉ ๋ฐ ์๋ฌ ์ด๋ฏธ์ง ์ค์ : ์ด๋ฏธ์ง๊ฐ ๋ก๋ฉ๋๋ ๋์ ๋ณด์ฌ์ง placeholder ์ด๋ฏธ์ง์ ์ด๋ฏธ์ง ๋ก๋ฉ ์คํจ ์ ๋ณด์ฌ์ง ์๋ฌ ์ด๋ฏธ์ง๋ฅผ ์ค์ ํ ์ ์๋ค.
- ์ด๋ฏธ์ง ๋ณํ ๊ธฐ๋ฅ: ์ด๋ฏธ์ง ํฌ๊ธฐ ์กฐ์ , ํ์ , ์๋ฅด๊ธฐ, ํํฐ๋ง ๋ฑ ๋ค์ํ ์ด๋ฏธ์ง ๋ณํ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค.
- ๋ฆฌ์์ค ์ ํ ์ง์: ์ธํฐ๋ท์์ ์ด๋ฏธ์ง๋ฅผ ๊ฐ์ ธ์ค๋ ๊ฒ๋ฟ๋ง ์๋๋ผ ๋ก์ปฌ ํ์ผ, ๋ฆฌ์์ค, ๋น๋์ค ํ๋ ์ ๋ฐ ๋น๋์ค ์คํธ์์๋ ์ด๋ฏธ์ง๋ฅผ ๋ก๋ํ ์ ์๋ค.
- ๋ผ์ด๋ธ ์ฌ์ดํด ๊ด๋ฆฌ: ์กํฐ๋นํฐ ๋ฐ ํ๋๊ทธ๋จผํธ์ ๋ผ์ดํ์ฌ์ดํด์ ๊ณ ๋ คํ์ฌ ๋ฉ๋ชจ๋ฆฌ ๋์๋ฅผ ๋ฐฉ์งํ๊ณ ์๋์ผ๋ก ์ด๋ฏธ์ง ๋ก๋ฉ์ ๊ด๋ฆฌํ๋ค.
- ์ ๋๋ฉ์ด์ ๋ฐ ๋ณํ ์ง์: GIF ์ง์๊ณผ ํจ๊ป ์ด๋ฏธ์ง ๋ก๋ฉ ๋ฐ ๋์คํ๋ ์ด ์ ๋๋ฉ์ด์ ์ ๊ตฌํํ ์ ์๋ค.
1. Gradle์ Glide ์ถ๊ฐ
build.gradle ํ์ผ์ Glide ์์กด์ฑ์ ์ถ๊ฐํ๋ค.
dependencies {
implementation ("com.github.bumptech.glide:glide:4.16.0")
}
2. ๊ถํ ์ถ๊ฐ
AndroidManifest.xml ํ์ผ์ ์ธํฐ๋ท ๊ถํ์ ์ถ๊ฐํ๋ค.
<uses-permission android:name="android.permission.INTERNET" />
3. java ํ์ผ์์ Glide ์ฌ์ฉ
์ด๋ฏธ์ง๋ฅผ ๋ก๋ํ๊ณ ํ์ํ๋ ค๋ ํ๋(์: MainActivity)์์ Glide๋ฅผ ์ฌ์ฉํ๋ค.
- ํ๋ฉด ์ค๊ณ
xml์์ ์ด๋ฏธ์ง๋ทฐ๋ฅผ ๋์ดํ๋ค.
- java ํ์ผ ํ๋ฉด ์ฐ๊ฒฐ
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ImageView;
public class MainActivity extends AppCompatActivity {
ImageView img1;
ImageView img2;
ImageView img3;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
img1 = findViewById(R.id.img1);
img2 = findViewById(R.id.img2);
img3 = findViewById(R.id.img3);
}
}
- Glide ์ฌ์ฉ
์ธ๋ถ ์ด๋ฏธ์ง url ๋ก ์ด๋ฏธ์ง ๊ฐ์ ธ์ค๊ธฐ
๋จผ์ ๋งด๋ฒ๋ณ์๋ก ์ด๋ฏธ์ง url ์์ ์ค์
final String imgUrl1 ="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTt6KIqXYTyQGGbIDGbtpI80L8B5eWmhdXaKw8C4kPk1nikU8M7Uv3GFPvQlh1g8V3iMQI&usqp=CAU";
final String imgUrl2 ="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQD8RWFWhKDJDWDg4ko0nwf5wapVU-FIh5jo3qBE2075KNPXVpDL1_wCSi4puPlmHqV94I&usqp=CAU";
final String imgUrl3 ="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTPoAukyCCpbuaMBGJwy8GpkcD4ISM6Xmz8jQ&usqp=CAU";
onCreate์์ Glide๋ก ์ด๋ฏธ์ง ๋ถ๋ฌ์ค๊ธฐ
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
img1 = findViewById(R.id.img1);
img2 = findViewById(R.id.img2);
img3 = findViewById(R.id.img3);
Glide.with(MainActivity.this).load(imgUrl1).into(img1);
Glide.with(MainActivity.this).load(imgUrl2).into(img2);
Glide.with(MainActivity.this).load(imgUrl3).into(img3);
}
4. ์ต์ข ์ฝ๋/ ํ๋ฉด
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ImageView;
import com.bumptech.glide.Glide;
public class MainActivity extends AppCompatActivity {
ImageView img1;
ImageView img2;
ImageView img3;
// ์์ ๋ฐ๊ฟ ์ ์๋ ์ซ์
final String imgUrl1 ="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTt6KIqXYTyQGGbIDGbtpI80L8B5eWmhdXaKw8C4kPk1nikU8M7Uv3GFPvQlh1g8V3iMQI&usqp=CAU";
final String imgUrl2 ="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQD8RWFWhKDJDWDg4ko0nwf5wapVU-FIh5jo3qBE2075KNPXVpDL1_wCSi4puPlmHqV94I&usqp=CAU";
final String imgUrl3 ="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTPoAukyCCpbuaMBGJwy8GpkcD4ISM6Xmz8jQ&usqp=CAU";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
img1 = findViewById(R.id.img1);
img2 = findViewById(R.id.img2);
img3 = findViewById(R.id.img3);
Glide.with(MainActivity.this).load(imgUrl1).into(img1);
Glide.with(MainActivity.this).load(imgUrl2).into(img2);
Glide.with(MainActivity.this).load(imgUrl3).into(img3);
}
}