نمایش عکس از دیتابیس داخل یک لیست ویو (راهنمایی)
سلام خدمت همگی دوستان
من سه روزه تمام تلاشمو کردم که بتونم یک عکس را از داخل دیتابیس در یک لیست ویو نمایش دهم و تمام راهکار های گفته شده در این انجمن را امتحان کردم ولی بازم فایده ای نداشت !
حتی کل اینترنت را هم گشتم ولی چیز درست و حسابی پیدا نکردم ! ( دیگه باید سر به بیابون بزارم :)) )
لطفا اگر کسی بلده راهنمایی کنه چطور تصاویر داخل دیتابیس را در لیست ویو نشان دهم و اگر هم راهی نداره ، بگید از چه روشی استفاده کنم .
دیتابیسم هم به این صورته که متن و عکس با هم هستند ( عکس بین متن )
خیییییلی متشکر . . . .
دوستان این هم کد هایی است که استفاده میکنم و حالا میخوام بدونم چطور از عکس بین متن استفاده کنم ؟
(( اکتیویتی اصلی ))
public class MainActivity extends Activity {
Database myDbHelper;
SQLiteDatabase db;
ListAdapter adapter;
ArrayList<HashMap<String, String>> data;
public String title3;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ListView lst = (ListView) findViewById(R.id.listView1);
ImageView imageView1 = (ImageView) findViewById(R.id.imageView1);
Load_Database();
db = myDbHelper.getReadableDatabase();
Cursor c = db.rawQuery("SELECT * FROM content ", null);
data = new ArrayList<HashMap<String, String>>();
for (; c.moveToNext();) {
HashMap<String, String> map = new HashMap<String, String>();
String id = c.getString(c.getColumnIndex("ID"));
String name = c.getString(c.getColumnIndex("Title"));
String name1 = c.getString(c.getColumnIndex("Matn"));
map.put("id", id);
map.put("name", name);
map.put("name1", name1);
data.add(map);
}
lst.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
Intent intent = new Intent(MainActivity.this, Go.class);
MainActivity.this.startActivity(intent);
}
});
adapter = new list_view(this, data);
lst.setAdapter(adapter);
}
private void Load_Database() throws Error {
myDbHelper = new Database(MainActivity.this);
try {
myDbHelper.createDataBase();
}
catch (IOException ioe) {
throw new Error("Unable to create database");
}
try {
myDbHelper.openDataBase();
}
catch (SQLException sqle) {
throw sqle;
}
}
(( اکتیویتی لیست ویو ))
public class list_view extends BaseAdapter {
private Activity activity;
private ArrayList<HashMap<String, String>> data;
private LayoutInflater inflate;
ViewHolder holder;
public list_view(Activity a, ArrayList<HashMap<String, String>> d) {
activity = a;
data = d;
inflate = (LayoutInflater) activity
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public int getCount() {
return data.size();
}
@Override
public Object getItem(int position) {
return position;
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int arg0, View view, ViewGroup arg2) {
View v1 = view;
if (v1 == null) {
v1 = inflate.inflate(R.layout.list_view, null);
holder = new ViewHolder();
holder.txt_name = (TextView) v1.findViewById(R.id.txt_name);
holder.txt_id = (TextView) v1.findViewById(R.id.txt_id);
holder.txt_name1 = (TextView) v1.findViewById(R.id.textView1);
holder.img_name2 = (ImageView) v1.findViewById(R.id.imageView1);
holder.txt_id.setVisibility(View.GONE);
v1.setTag(holder);
} else {
holder = (ViewHolder) v1.getTag();
}
HashMap<String, String> song = new HashMap<String, String>();
song = data.get(arg0);
holder.txt_id.setText(song.get("id"));
holder.txt_name.setText(song.get("name"));
holder.txt_name1.setText(song.get("name1"));
return v1;
}
public static void SetDrawable(String tasvir, ImageView imgshow) {
int resID = ((ContextWrapper) G.contex).getResources().getIdentifier(tasvir, "drawable", ((ContextWrapper) G.contex).getPackageName());
imgshow.setImageResource(resID);
}
static class ViewHolder {
public ImageView img_name2;
public TextView txt_name1;
TextView txt_name;
TextView txt_id;
}
معمولا استفاده از عکس به طور مستقیم در دیتابیس کار درستی نیست، پیشنهاد من اینه که شما عکساتون رو به صورت Assets به برنامتون اضافه کنید، و فقط اسم عکسا رو توی دیتابیس ذخیره کنید، بعد از اون با استفاده از اسم عکساتون که از دیتابیس میخونید میتونید خود عکس ها رو از فولدر Assets بخونید. خیلی وقت پیش این کار رو کرده بودم، اگر با راهنماییها به جایی نرسیدید بگید کد های قدیمی رو پیدا کنم و براتون بنویسم.
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .