1 2 3 | SELECT * FROM table WHERE replace(column_name, ' ', '') = 'aaa' |
1 2 3 4 5 | StringExpression se = StringTemplate.create("replace({0}, ' ', '')", column_name); return select().from(o).where( se.eq('aaa') ).list(o); |
1 2 3 | SELECT * FROM table WHERE replace(column_name, ' ', '') = 'aaa' |
1 2 3 4 5 | StringExpression se = StringTemplate.create("replace({0}, ' ', '')", column_name); return select().from(o).where( se.eq('aaa') ).list(o); |
1 2 | // AndroidManifest.xml에 사용권한 추가 <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> |
1 2 3 4 5 6 7 8 9 10 | // 내부 사진첩 열기 ImageView imageView = findViewById(R.id.img); imageView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Intent intent = new Intent(Intent.ACTION_PICK); intent.setType(MediaStore.Images.Media.CONTENT_TYPE); startActivityForResult(intent, 1000); } }); |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | @Override protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { switch (requestCode) { case 1000: // 선택한 이미지를 ImageView에 표시 imageView.setImageURI(data.getData()); // 이미지 내부경로 imagePath = getPath(data.getData()); break; } } private String getPath(Uri uri) { String [] proj = {MediaStore.Images.Media.DATA}; CursorLoader cursorLoader = new CursorLoader(this, uri, proj, null, null, null); Cursor cursor = cursorLoader.loadInBackground(); int index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA); cursor.moveToFirst(); return cursor.getString(index); } |
1 2 3 4 5 6 7 8 9 10 11 12 | // 전역변수 선언 private FirebaseFirestore db; private FirebaseStorage storage; private StorageReference storageRef; private StorageReference recvRef; // 초기화 및 Storage 버킷설정 private void init() { db = FirebaseFirestore.getInstance(); storage = FirebaseStorage.getInstance("xxx-xxx.appspot.com"); storageRef = storage.getReference(); } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | Uri file = Uri.fromFile(new File(companyImgPath)); // 업로드 폴더 지정 recvRef = storageRef.child("company/" + file.getLastPathSegment()); recvRef.putFile(file).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() { @Override public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) { // 업로드 완료후 다운로드 경로 가져오기 recvRef.getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() { @Override public void onSuccess(Uri uri) { // 다운로드 경로 표시 (uri.toString()) Log.d(TAG, uri.toString()); } }); } }).addOnFailureListener(new OnFailureListener() { @Override public void onFailure(@NonNull Exception e) { Log.d(TAG, "Image Upload failure."); } }); |
Coustom 객체를 사용한 조회
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | db.collection("company") .get() .addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() { @Override public void onComplete(@NonNull Task<QuerySnapshot> task) { if (task.isSuccessful()) { for (QueryDocumentSnapshot document : task.getResult()) { companyList.add(document.toObject(Company.class)); } } else { Log.w(TAG, "Error getting company documents.", task.getException()); } } }); |
1 2 | // 조회된 데이터 매핑 Company company = document.toObject(Company.class); |
Coustom 객체를 사용한 추가
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | db.collection("company") .add(company) // 객체를 넣어준다. .addOnSuccessListener(new OnSuccessListener<DocumentReference>() { @Override public void onSuccess(DocumentReference documentReference) { finish(); } }) .addOnFailureListener(new OnFailureListener() { @Override public void onFailure(@NonNull Exception e) { Log.w(TAG, "Failure save"); } }); |
1 2 3 | dependencies { implementation 'com.mikhaellopez:circularimageview:4.0.1' } |
app:civ_circle_color (color) -> default WHITEapp:civ_border (boolean) -> default trueapp:civ_border_color (color) -> default WHITEapp:civ_border_width (dimension) -> default 4dpapp:civ_shadow (boolean) -> default falseapp:civ_shadow_color (color) -> default BLACKapp:civ_shadow_radius (float) -> default 8.0fapp:civ_shadow_gravity (center, top, bottom, start or end) -> default bottom1 2 3 4 5 6 7 8 9 | <com.mikhaellopez.circularimageview.CircularImageView android:layout_width="250dp" android:layout_height="250dp" android:src="@drawable/image" app:civ_border_color="#3f51b5" app:civ_border_width="4dp" app:civ_shadow="true" app:civ_shadow_radius="10" app:civ_shadow_color="#3f51b5"/> |
1 2 3 4 5 6 7 8 9 10 11 12 13 | CircularImageView circularImageView = findViewById(R.id.circularImageView); // Set Circle color for transparent image circularImageView.setCircleColor(Color.WHITE); // Set Border circularImageView.setBorderColor(Color.RED); circularImageView.setBorderWidth(10); // Add Shadow with default param circularImageView.setShadowEnable(true); // or with custom param circularImageView.setShadowRadius(15); circularImageView.setShadowColor(Color.RED); circularImageView.setBackgroundColor(Color.RED); circularImageView.setShadowGravity(CircularImageView.ShadowGravity.CENTER); |
1 2 3 | dependencies { implementation 'com.squareup.picasso:picasso:2.71828' } |
1 | Picasso.get().load("http://i.imgur.com/DvpvklR.png").into(imageView); |
앱을 개발하면서 간단한 사용자의 설정 정보 또는 무겁지 않은 데이터를 저장할때 사용하면 유용합니다. 저장된 데이터는 앱을 삭제하거나 앱 데이터를 삭제하면 지워지는 데이터 이므로 저장하려는 데이터를 어디에 저장할것인 잘 판단해야 합니다. 데이터 저장 ...