android圖片資料庫
⑴ android 存在資料庫中的動態圖片,如何讀取出來,顯示在ImageView中
實現的功能為從伺服器獲取圖片數據,在布局頁面上顯示。由於圖片的個數是不確定的,因此採用在布局頁面中定義多個ImageView來顯示圖片是不合理的。
(一)首先定義布局
android:id="@+id/id_layout_movie"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
(二)載入圖片顯示時獲取到布局文件
RelativeLayout rl_Movie = (RelativeLayout) findViewById(R.id.id_layout_movie);
(三)依次循環伺服器獲取的圖片數據,一張一張設置圖片顯示的位置
//newWidth為圖片顯示的寬度,newHeight為圖片顯示的高度
RelativeLayout.LayoutParams lp1 = new RelativeLayout.LayoutParams( newWidth, newHeight);
設置lp1.leftMargin和lp1.topMargin的值
(四)最後設置rl_Movie.addView(iv, lp1)將圖片加入布局文件中
⑵ android APP的圖標要如何存儲在資料庫中
根據圖片名稱獲取圖片id,下面介紹兩種方法,問題解決方法來源於android學習手冊,360手機助手中下載。裡面108個例子,源碼文檔隨便看,例子都是可交互,可運行,源碼採用android studio目錄結構,高亮顯示代碼,文檔都採用文檔結構圖顯示,可以快速定位。
假如在drawable目錄下放一個圖片文件,由於一些原因,我們在程序中僅僅知道它的文件名,而不知道它的資源ID,當我們需要這個資源ID的時候,可以使用下面的一行代碼獲取到:
方法一:
java代碼
/**
* 獲取圖片名稱獲取圖片的資源id的方法
* @param imageName
* @return
*/
public int getResource(String imageName){
Context ctx=getBaseContext();
int resId = getResources().getIdentifier(imageName, "drawable" , ctx.getPackageName());
return resId;
方法二:
Java代碼
/**
* 獲取圖片名稱獲取圖片的資源id的方法
* @param imageName
* @return
*/
public int getResourceByReflect(String imageName){
Class drawable = R.drawable.class;
Field field = null;
int r_id ;
try {
field = drawable.getField(imageName);
r_id = field.getInt(field.getName());
} catch (Exception e) {
r_id=R.drawable.b_nothing;
Log.e("ERROR", "PICTURE NOTFOUND!");
}
return r_id;
}
知道資源ID,獲取資源的文件名
getResources().getResourceName(resid)
⑶ android:從資料庫中取得的圖片,無法顯示到模擬器上
應該是你在byte【】轉換成bitmap 時候 或者圖片轉換成byte【】數組時候出現錯位等一些問題,導致圖片不能正確顯示, 我的圖片一般都是存儲路徑的(把圖片放在sdcard),然後顯示的時候直接從路徑讀取,上傳給伺服器時候用fileInfutstream 讀取指定路徑下的圖片 上傳給伺服器
⑷ android 如何獲取保存的圖片的地址 並存到資料庫中
安卓中如何獲取保存的圖片uri 並保存到sqlite資料庫中
有如下兩種方法,僅供參考
方法一:Java代碼
public void saveIcon(Bitmap icon) {
if (icon == null) {
return;
}
// 最終圖標要保存到瀏覽器的內部資料庫中,系統程序均保存為SQLite格式,Browser也不例外,因為圖片是二進制的所以使用位元組數組存儲資料庫的
// BLOB類型
final ByteArrayOutputStream os = new ByteArrayOutputStream();
// 將Bitmap壓縮成PNG編碼,質量為100%存儲
icon.compress(Bitmap.CompressFormat.PNG, 100, os);
// 構造SQLite的Content對象,這里也可以使用
raw ContentValues values = new ContentValues();
// 寫入資料庫的
Browser.BookmarkColumns.TOUCH_ICON欄位 values.put(Browser.BookmarkColumns.TOUCH_ICON, os.toByteArray());
DBUtil.update(....);
//調用更新或者插入到資料庫的方法
}
}
方法二:如果數據表入口時一個content:URIJava代碼
import android.provider.MediaStore.Images.Media;
import android.content.ContentValues;
import java.io.OutputStream;
// Save the name and description of an image in a ContentValues map.
ContentValues values = new ContentValues(3);
values.put(Media.DISPLAY_NAME, "road_trip_1");
values.put(Media.DESCRIPTION, "Day 1, trip to Los Angeles");
values.put(Media.MIME_TYPE, "image/jpeg");
// Add a new record without the bitmap, but with the values just set.
// insert() returns the URI of the new record.
Uri uri = getContentResolver().insert(Media.EXTERNAL_CONTENT_URI, values);
// Now get a handle to the file for that record, and save the data into it.
// Here, sourceBitmap is a Bitmap object representing the file to save to the database.
try {
OutputStream outStream = getContentResolver().openOutputStream(uri);
sourceBitmap.compress(Bitmap.CompressFormat.JPEG, 50, outStream);
outStream.close();
} catch (Exception e) {
Log.e(TAG, "exception while writing image", e);
}
原文請看http://www.bafenbaosoft.com/post/48.html
⑸ Android一般採用什麼資料庫
Android一般採用sqlite資料庫作為數據存儲方案。
通常的資料庫有關系型數據如:ms ql ,mysql,oracle等,非關系型nosql資料庫 如mongodb,redis
android作為手機端的手機操作系統,是無法直接操作大型的關系型或是no sql類型的資料庫的。
從你的應用描述中景點等信息都可以選擇存儲在sqlite中。
但是圖片這些信息還是建議你存儲到伺服器上,以文件的形式存儲。
還有一種方式是在伺服器中使用任何的關系型和非關系型資料庫存儲你的所有數據,但是你的android應用需要通過api去訪問你的景點圖片信息。
⑹ Android 圖片以位元組流方式存入本地資料庫 怎麼弄 求高手指點啊
少年,資料庫有個類型是blob,可以用這個類型存儲,直接存儲位元組,步驟:
1.假設圖片欄位名Image,那麼設置Image為blob欄位
2.代碼中將bimageview轉換為位元組以後,用ContentValues中的values.put("Image",byte[]);然後或者是插入,或者是更新,用android的sqlite3中的操作就可以了
如果你看上面的後半部分不太懂,可以網路一下:android sqlite3 的增刪改查,就會看到裡面有具體的步驟了,就是利用ContentValues進行sql語句處理
⑺ android資料庫儲存圖片問題。
存儲圖片是在SdCard下的,不要放在資料庫裡面。否則用戶在設置里找到你的應用--》"清除數據"你的圖片豈不是全部丟掉了.
所以開發時圖片一般在內存中或者在Sdcard中
無論圖片在哪都可以讓適配器去連接你的圖片與UI顯示的。要理解 View -Adapter -source 三者之間的關系對你有莫大的好處.
僅僅伸手要代碼,無任何好處,下次你還不會懂