-2
に画像を保存最高のソリューション?あなたはコードで私を助けている場合Kotlin:何であるか「sqliteの」データベース</p> <p>にプロファイルを保存し (アバターまたはキャプチャ画像から選択)私は、ユーザーが2つのオプションを与えたい 、私はkotlinにユーザープロファイルを作成していたデータベース
私は
に画像を保存最高のソリューション?あなたはコードで私を助けている場合Kotlin:何であるか「sqliteの」データベース</p> <p>にプロファイルを保存し (アバターまたはキャプチャ画像から選択)私は、ユーザーが2つのオプションを与えたい 、私はkotlinにユーザープロファイルを作成していたデータベース
私は
感謝してますねえ、私は、そのためのソリューションを持って::
Databaseクラス "DatabaseHelper.kt" を作成します::
class DatabaseHelper(context: Context) : SQLiteOpenHelper(context, DATABASE_NAME, null, 1) {
override fun onCreate(db: SQLiteDatabase) {
db.execSQL("Create Table $TABLE_NAME(ID INTEGER PRIMARY KEY AUTOINCREMENT,Category_img BLOB)")
}
override fun onUpgrade(db: SQLiteDatabase, oldVersion: Int, newVersion: Int) {
db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME)
onCreate(db)
}
fun insertData(Category_img: ByteArray): Boolean {
val db = writableDatabase
val cv = ContentValues()
cv.put(CAL_NO1, Category_img)
val result = db.insert(TABLE_NAME, null, cv)
return if (result .equals(-1))
false
else
true
}
fun getdata(): ByteArray {
val db = writableDatabase
val res = db.rawQuery("select * from " + TABLE_NAME, null)
if (res.moveToFirst()) {
do {
return res.getBlob(0)
} while (res.moveToNext())
}
return byteArrayOf()
}
companion object {
private val DATABASE_NAME = "user.db"
private val TABLE_NAME = "tbl_user"
private val CAL_NO1 = "Category_img"
}
}
を
これをアクセスしたい場所からコード化してください::
class MainActivity : AppCompatActivity() {
var dbSq: DatabaseHelper= DatabaseHelper(this);
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val cameraIntent = Intent(MediaStore.ACTION_IMAGE_CAPTURE)
startActivityForResult(cameraIntent, 101)
}
public override fun onActivityResult(requestcode: Int, resultcode: Int, intent: Intent) {
super.onActivityResult(requestcode, resultcode, intent)
if (resultcode == Activity.RESULT_OK) {
if (requestcode == 101) {
val photo = intent.extras!!.get("data") as Bitmap
val stream = ByteArrayOutputStream()
photo.compress(Bitmap.CompressFormat.PNG, 100, stream)
val byteArray = stream.toByteArray()
Log.d("check",dbSq.insertData(byteArray).toString().plus(" "));
}
}
}
あなたのためにうまくいくと思います。
ご連絡いただきありがとうございます。
EDITED:
"DatabaseHelper.kt" ::
class DatabaseHelper(context: Context) : SQLiteOpenHelper(context, DATABASE_NAME, null, 1) {
override fun onCreate(db: SQLiteDatabase) {
db.execSQL("Create Table $TABLE_NAME(ID INTEGER PRIMARY KEY AUTOINCREMENT,Category_img Text)")
}
override fun onUpgrade(db: SQLiteDatabase, oldVersion: Int, newVersion: Int) {
db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME)
onCreate(db)
}
fun insertData(Category_img: String): Boolean {
val db = writableDatabase
val cv = ContentValues()
cv.put(CAL_NO1, Category_img)
val result = db.insert(TABLE_NAME, null, cv)
return if (result .equals(-1))
false
else
true
}
companion object {
private val DATABASE_NAME = "user.db"
private val TABLE_NAME = "tbl_user"
private val CAL_NO1 = "Category_img"
}
}
、あなたがカメラにアクセスする場所からのコードにこれを行う::
class MainActivity : AppCompatActivity() {
var dbSq: DatabaseHelper= DatabaseHelper(this);
internal var output: File? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val cameraIntent = Intent(MediaStore.ACTION_IMAGE_CAPTURE)
val dir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM)
val date = Date()
output = File(dir, "CheckImage " + date.toString()+".jpeg")
startActivityForResult(cameraIntent, 101)
}
public override fun onActivityResult(requestcode: Int, resultcode: Int, intent: Intent) {
super.onActivityResult(requestcode, resultcode, intent)
if (resultcode == Activity.RESULT_OK) {
if (requestcode == 101) {
Log.d("check",dbSq.insertData(output!!.absolutePath).toString().plus(" "));
}
}
}
}
感謝返信用に、写真をデバイスに保存し、ファイル名をデータベースに保存することはできますか電子、またはそれをデータベースに保存するのが最良の解決策ですか? –
あなたはこれをデバイスとその名前でデータベースに保存します。これは私が思う最良の解決策です。私の答えはあなたの要求にちょうど合っています。それもデバイスで保存し、データベースで名前を付ける場合はOKです。 –
私はそれに応じてコードの変更をしたいのですか? –