رفتن به مطلب
انجمن اندروید ایران | آموزش برنامه نویسی اندروید و موبایل
  • android.png.1fab383bc8500cd93127cebc65b1dcab.png

پست های پیشنهاد شده

سلام 

دوستان لطفا راهنمایی کنید چطور برای نمایش عکس کنار متن کدمو تصحیح کنم چون موقع اجرا برنامه فورس کلوز میده

من از دیتابیس خارجی استفاده میکنم الان نمیدونم queryمشکل داره یا نحوه بازیابیم ممنون میشم راهنمایی کنید:huh:

 اینم از عکس دیتابیس

http://s6.picofile.com/file/8216173826/untitled5555.bmp

داخل کلاس دیتابیس این کدهارو نوشتم

[shcode=java]

public byte[] getpic (String table,String sea,String name){

Cursor cu=mydb.rawQuery( "select * from "+table+" where season='"+sea+"'"+" and name='"+name+"'", null);

cu.moveToFirst();

byte[]s;

s=cu.getBlob(5);

return s;

}

[/shcode]

داخل کلاس show هم این کدهارو نوشتم

[shcode=java]

public byte[] getpic (String table,String sea,String name){

Cursor cu=mydb.rawQuery( "select * from "+table+" where season='"+sea+"'"+" and name='"+name+"'", null);

cu.moveToFirst();

byte[]s;

s=cu.getBlob(5);

return s;

}

[/shcode]

لینک ارسال
به اشتراک گذاری در سایت های دیگر

دوستان یکی در راه رضای خدا به من کمک کنه.....


دوستان عذر میخوام کد مربوط به show اینه[shcode=java]

byte[] p=(db.getpic(id));

if (p!=null){

Bitmap bm=BitmapFactory.decodeByteArray(p, 0, p.length);

imagematn.setImageBitmap(bm);}

[/shcode]

لینک ارسال
به اشتراک گذاری در سایت های دیگر

روش بهتر اینه که عکس رو جایی ذخیره کنی و بعد آدرسش رو تو دیتابیس ذخیره کنی ، اینجوری برنامه سریعتر هم اجرا میشه

لینک ارسال
به اشتراک گذاری در سایت های دیگر

روش بهتر اینه که عکس رو جایی ذخیره کنی و بعد آدرسش رو تو دیتابیس ذخیره کنی ، اینجوری برنامه سریعتر هم اجرا میشه

حق با شماست ولی اون روش رو بلد نیستم هرکاریم کردم نتونستم

لینک ارسال
به اشتراک گذاری در سایت های دیگر

سلام

ببینبد این کد بدرتون میخوره ؟

کد تمام پروژه

b)DataBaseHandler.java

package com.manish.sqlite;

import java.util.ArrayList;
import java.util.List;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

public class DataBaseHandler extends SQLiteOpenHelper {

// All Static variables
// Database Version
private static final int DATABASE_VERSION = 1;

// Database Name
private static final String DATABASE_NAME = "imagedb";

// Contacts table name
private static final String TABLE_CONTACTS = "contacts";

// Contacts Table Columns names
private static final String KEY_ID = "id";
private static final String KEY_NAME = "name";
private static final String KEY_IMAGE = "image";

public DataBaseHandler(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}

// Creating Tables
@Override
public void onCreate(SQLiteDatabase db) {
String CREATE_CONTACTS_TABLE = "CREATE TABLE " + TABLE_CONTACTS + "("
+ KEY_ID + " INTEGER PRIMARY KEY," + KEY_NAME + " TEXT,"
+ KEY_IMAGE + " BLOB" + ")";
db.execSQL(CREATE_CONTACTS_TABLE);
}

// Upgrading database
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// Drop older table if existed
db.execSQL("DROP TABLE IF EXISTS " + TABLE_CONTACTS);

// Create tables again
onCreate(db);
}

/**
* All CRUD(Create, Read, Update, Delete) Operations
*/

public// Adding new contact
void addContact(Contact contact) {
SQLiteDatabase db = this.getWritableDatabase();

ContentValues values = new ContentValues();
values.put(KEY_NAME, contact._name); // Contact Name
values.put(KEY_IMAGE, contact._image); // Contact Phone

// Inserting Row
db.insert(TABLE_CONTACTS, null, values);
db.close(); // Closing database connection
}

// Getting single contact
Contact getContact(int id) {
SQLiteDatabase db = this.getReadableDatabase();

Cursor cursor = db.query(TABLE_CONTACTS, new String[] { KEY_ID,
KEY_NAME, KEY_IMAGE }, KEY_ID + "=?",
new String[] { String.valueOf(id) }, null, null, null, null);
if (cursor != null)
cursor.moveToFirst();

Contact contact = new Contact(Integer.parseInt(cursor.getString(0)),
cursor.getString(1), cursor.getBlob(1));

// return contact
return contact;

}

// Getting All Contacts
public List getAllContacts() {
List contactList = new ArrayList();
// Select All Query
String selectQuery = "SELECT * FROM contacts ORDER BY name";

SQLiteDatabase db = this.getWritableDatabase();
Cursor cursor = db.rawQuery(selectQuery, null);
// looping through all rows and adding to list
if (cursor.moveToFirst()) {
do {
Contact contact = new Contact();
contact.setID(Integer.parseInt(cursor.getString(0)));
contact.setName(cursor.getString(1));
contact.setImage(cursor.getBlob(2));
// Adding contact to list
contactList.add(contact);
} while (cursor.moveToNext());
}
// close inserting data from database
db.close();
// return contact list
return contactList;

}

// Updating single contact
public int updateContact(Contact contact) {
SQLiteDatabase db = this.getWritableDatabase();

ContentValues values = new ContentValues();
values.put(KEY_NAME, contact.getName());
values.put(KEY_IMAGE, contact.getImage());

// updating row
return db.update(TABLE_CONTACTS, values, KEY_ID + " = ?",
new String[] { String.valueOf(contact.getID()) });

}

// Deleting single contact
public void deleteContact(Contact contact) {
SQLiteDatabase db = this.getWritableDatabase();
db.delete(TABLE_CONTACTS, KEY_ID + " = ?",
new String[] { String.valueOf(contact.getID()) });
db.close();
}

// Getting contacts Count
public int getContactsCount() {
String countQuery = "SELECT * FROM " + TABLE_CONTACTS;
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.rawQuery(countQuery, null);
cursor.close();

// return count
return cursor.getCount();
}
}

c)SQLiteDemoActivity.java

package com.manish.sqlite;

import java.io.ByteArrayOutputStream;
import java.util.ArrayList;
import java.util.List;

import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.util.Log;
import android.widget.ListView;

public class SQLiteDemoActivity extends Activity {
ArrayList imageArry = new ArrayList();
ContactImageAdapter adapter;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

DataBaseHandler db = new DataBaseHandler(this);
// get image from drawable
Bitmap image = BitmapFactory.decodeResource(getResources(),
R.drawable.facebook);

// convert bitmap to byte
ByteArrayOutputStream stream = new ByteArrayOutputStream();
image.compress(Bitmap.CompressFormat.JPEG, 100, stream);
byte imageInByte[] = stream.toByteArray();
/**
* CRUD Operations
* */
// Inserting Contacts
Log.d("Insert: ", "Inserting ..");
db.addContact(new Contact("FaceBook", imageInByte));
// display main List view bcard and contact name

// Reading all contacts from database
List contacts = db.getAllContacts();
for (Contact cn : contacts) {
String log = "ID:" + cn.getID() + " Name: " + cn.getName()
+ " ,Image: " + cn.getImage();

// Writing Contacts to log
Log.d("Result: ", log);
//add contacts data in arrayList
imageArry.add(cn);

}
adapter = new ContactImageAdapter(this, R.layout.screen_list,
imageArry);
ListView dataList = (ListView) findViewById(R.id.list);
dataList.setAdapter(adapter);
}
}

d)Contact.java

package com.manish.sqlite;

public class Contact {

// private variables
int _id;
String _name;
byte[] _image;

// Empty constructor
public Contact() {

}

// constructor
public Contact(int keyId, String name, byte[] image) {
this._id = keyId;
this._name = name;
this._image = image;

}

// constructor
public Contact(String name, byte[] image) {
this._name = name;
this._image = image;
}

// getting ID
public int getID() {
return this._id;
}

// setting id
public void setID(int keyId) {
this._id = keyId;
}

// getting name
public String getName() {
return this._name;
}

// setting name
public void setName(String name) {
this._name = name;
}

// getting phone number
public byte[] getImage() {
return this._image;
}

// setting phone number
public void setImage(byte[] image) {
this._image = image;
}
}


e)ContactImageAdapter.java

package com.manish.sqlite;
import java.io.ByteArrayInputStream;
import java.util.ArrayList;

import android.app.Activity;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.TextView;

public class ContactImageAdapter extends ArrayAdapter{
Context context;
int layoutResourceId;
ArrayList data=new ArrayList();
public ContactImageAdapter(Context context, int layoutResourceId, ArrayList data) {
super(context, layoutResourceId, data);
this.layoutResourceId = layoutResourceId;
this.context = context;
this.data = data;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
View row = convertView;
ImageHolder holder = null;
if(row == null)
{
LayoutInflater inflater = ((Activity)context).getLayoutInflater();
row = inflater.inflate(layoutResourceId, parent, false);
holder = new ImageHolder();
holder.txtTitle = (TextView)row.findViewById(R.id.txtTitle);
holder.imgIcon = (ImageView)row.findViewById(R.id.imgIcon);
row.setTag(holder);
}
else
{
holder = (ImageHolder)row.getTag();
}
Contact picture = data.get(position);
holder.txtTitle.setText(picture ._name);
//convert byte to bitmap take from contact class
byte[] outImage=picture._image;
ByteArrayInputStream imageStream = new ByteArrayInputStream(outImage);
Bitmap theImage = BitmapFactory.decodeStream(imageStream);
holder.imgIcon.setImageBitmap(theImage);
return row;
}
static class ImageHolder
{
ImageView imgIcon;
TextView txtTitle;
}
}



f)main.xml

<?xml version="1.0" encoding="utf-8"?>
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
android:id="@+id/list"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="0.55" >



g)screen_list.xml

<?xml version="1.0" encoding="utf-8"?>
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal"
android:padding="10dp" >
android:id="@+id/imgIcon"
android:layout_width="0dp"
android:layout_height="100dp"
android:layout_weight="0.71"
android:gravity="center_vertical" />
android:id="@+id/txtTitle"
android:layout_width="80dp"
android:layout_height="fill_parent"
android:gravity="center_vertical"
android:textSize="14dp"
android:layout_marginLeft="7dp" />


این هم سورس

http://s6.picofile.com/file/8216263684/master.zip.html

لینک ارسال
به اشتراک گذاری در سایت های دیگر

خیلی ممنون دوست عزیز که زحمت کشیدی راهنمایی کردی ولی متاسفانه من از دیتابیس خارجی استفاده میکنم ولی شما دیتابیس رو داخل برنامه ساختین که یکم ساختارش بامال من فرق میکنه

لینک ارسال
به اشتراک گذاری در سایت های دیگر

خوب برادر میتونی یکمی به کد ها خوب نگاه کنی و چیزی که ازش بخوای رو در بیاری

میتونی کد اون اکتیویتی مورد نظرت رو برای ما قرار بدی بهش نگاه کنیم اگر نمیتونی سورس کامل بزاری بهتر میشه راهنمای کرد

لینک ارسال
به اشتراک گذاری در سایت های دیگر

database

[shcode=java]

public class database extends SQLiteOpenHelper{

private final Context mycontext;

public final String path="data/data//databases/";

public final String name=database";

public SQLiteDatabase mydb;

public database(Context context) {

super(context, "clashdatabase", null, 1);

// TODO Auto-generated constructor stub

mycontext=context;

}

@Override

public void onCreate(SQLiteDatabase arg0) {

// TODO Auto-generated method stub

}

@Override

public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {

// TODO Auto-generated method stub

}

public void open(){

mydb=SQLiteDatabase.openDatabase(path+name, null, SQLiteDatabase.OPEN_READWRITE);

}

public void close(){

mydb.close();

}

public void useable(){

boolean checkdb=checkdb();

if(checkdb){

}else{

this.getReadableDatabase();

try{

copydatabase();

}catch(IOException e){

}

}

}

public boolean checkdb() {

SQLiteDatabase db=null;

try{

db=SQLiteDatabase.openDatabase(path+name, null, SQLiteDatabase.OPEN_READONLY);

}catch(SQLException e)

{

}

return db !=null ? true:false;

}

public void copydatabase() throws IOException{

OutputStream myOutput = new FileOutputStream(path+name);

byte[] buffer = new byte[1024];

int length;

InputStream myInput = mycontext.getAssets().open("clashdatabase");

while ((length = myInput.read(buffer)) > 0) {

myOutput.write(buffer,0,length);

}

myInput.close();

myOutput.flush();

myOutput.close();

}

public String season_display(String table,int row){

Cursor cu=mydb.rawQuery("select * from "+table+" group by season", null);

cu.moveToPosition(row);

String s=cu.getString(3);

return s;

}

public Integer season_count(String table){

Cursor cu=mydb.rawQuery("select * from "+table+" group by season", null);

int s=cu.getCount();

return s;

}

public Integer asjbdkjas(String table,String sea){

Cursor cu=mydb.rawQuery("select * from "+table+" where season='"+sea+"'", null);

int s=cu.getCount();

return s;

}

public String content_display(String table,String sea,int row){

Cursor cu=mydb.rawQuery("select * from "+table+" where season='"+sea+"'", null);

cu.moveToPosition(row);

String s=cu.getString(1);

return s;

}

public String show(String table,String sea,String name,int field){

Cursor cu=mydb.rawQuery("select * from "+table+" where season='"+sea+"'"+" and name='"+name+"'", null);

cu.moveToFirst();

String s=cu.getString(field);

return s;

}

public void fav_update(String v,String sea,String name){

ContentValues cv=new ContentValues();

cv.put("favorite", v);

mydb.update("content", cv, "season='"+sea+"'"+" and name='"+name+"'", null);

}

public String get_fav(int row,int field){

Cursor cu=mydb.rawQuery("select * from content where favorite='1'", null);

cu.moveToPosition(row);

String s=cu.getString(field);

return s;

}

public Integer count_fav(){

Cursor cu=mydb.rawQuery("select * from content where favorite='1'", null);

int s=cu.getCount();

return s;

}

public String load_set(int row,int field){

Cursor cu=mydb.rawQuery("select * from setting", null);

cu.moveToPosition(row);

String s=cu.getString(field);

return s;

}

public void setting_up(String field,String v,String name){

ContentValues cv=new ContentValues();

cv.put(field, v);

mydb.update("setting", cv, "name='"+name+"'", null);

}

public Integer count_video(){

Cursor cu=mydb.rawQuery("select * from main", null);

int s=cu.getCount();

return s;

}

public String get_video(int field,int row){

Cursor cu=mydb.rawQuery("select * from main", null);

cu.moveToPosition(row);

String s=cu.getString(field);

return s;

}

public Integer search_count(String word,String aa){

Cursor cu=mydb.rawQuery("select * from content where "+aa+" Like '%"+word+"%'", null);

int s=cu.getCount();

return s;

}

public String search(int row,int field,String word,String aa){

Cursor cu=mydb.rawQuery("select * from content where "+aa+" Like '%"+word+"%'", null);

cu.moveToPosition(row);

String s=cu.getString(field);

return s;

}

public byte[] getpic (int id){

Cursor cu=mydb.rawQuery( "SELECT imagematn from content where id="+id, null);

cu.moveToFirst();

byte[]s;

s=cu.getBlob(5);

return s;

}

}

[/shcode]

اینم فایل show

[shcode=java]

public class Show extends Activity{

private database db=new database(this);

private TextView txt_name;

private TextView txt_content;

private ImageView img_share;

private ImageView img_fav;

private String name;

private String season;

private String table;

private int id;

private int row;

private int fav;

private ImageView imagematn;

@Override

protected void onCreate(Bundle savedInstanceState) {

// TODO Auto-generated method stub

super.onCreate(savedInstanceState);

setContentView(R.layout.show);

db.open();

txt_name=(TextView) findViewById(R.id.txt_show_name);

txt_content=(TextView) findViewById(R.id.txt_show_content);

img_share=(ImageView) findViewById(R.id.img_share);

img_fav=(ImageView) findViewById(R.id.img_fav);

imagematn=(ImageView) findViewById(R.id.imagematn);

Bundle ex=getIntent().getExtras();

name=ex.getString("name");

season=ex.getString("season");

row=ex.getInt("row");

txt_name.setText(db.show("content", season, name, 1));

txt_content.setText(db.show("content", season, name,2));

byte[] p=(db.getpic(id));

if (p!=null){

Bitmap bm=BitmapFactory.decodeByteArray(p, 0, p.length);

imagematn.setImageBitmap(bm);}

fav=Integer.parseInt(db.show("content", season, name, 4));

if(fav==0){

img_fav.setImageResource(R.drawable.favoff);

}

if(fav==1){

img_fav.setImageResource(R.drawable.favon);

}

Typeface font=Typeface.createFromAsset(getAssets(), db.load_set(0, 2));

txt_name.setTypeface(font);

txt_content.setTypeface(font);

txt_name.setTextSize(Float.parseFloat(db.load_set(1, 2)));

txt_content.setTextSize(Float.parseFloat(db.load_set(1, 2)));

txt_content.setLineSpacing(Float.parseFloat(db.load_set(2, 2)), 1);

db.close();

img_fav.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View arg0) {

// TODO Auto-generated method stub

db.open();

fav=Integer.parseInt(db.show("content", season, name, 4));

if(fav==0){

db.fav_update("1", season, name);

img_fav.setImageResource(R.drawable.favon);

Toast.makeText(getApplicationContext(), "این مطلب در کلیپ بورد قرار داده شد", Toast.LENGTH_LONG).show();

}

if(fav==1){

db.fav_update("0", season, name);

img_fav.setImageResource(R.drawable.favoff);

Toast.makeText(getApplicationContext(), "این مطلب از کلیپ بورد برداشته شد", Toast.LENGTH_LONG).show();

}

db.close();

}

});

img_share.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View arg0) {

// TODO Auto-generated method stub

Intent shareIntent = new Intent(Intent.ACTION_SEND);

shareIntent.setType("text/plain");

shareIntent.putExtra(Intent.EXTRA_TEXT,"***این متن از نرم افزار ایستگاه کلش  ساخته شده برای سیستم عامل اندروید موجود در مارکت کافه بازار اشتراک گذاری شده است***"+"\n"+txt_content.getText().toString());

shareIntent.putExtra(Intent.EXTRA_SUBJECT, "iran");

startActivity(Intent.createChooser(shareIntent, "اشتراک ..."));

}

});

}

}

[/shcode]

لینک ارسال
به اشتراک گذاری در سایت های دیگر

سلام دوست عزیز

کدت همون اول این خطش اشتباهه

[shcode=java] public final String name=database";[/shcode]

یه جفت کوتیشن کم داره. بقیه رو نگاه نکردم اینو درست کن چون اسم دیتابیسته. دوباره تست کن. اگه میتونی خط به خط دیباگ کن ببین کدوم قسمت متغیرت مقدار نداره

لینک ارسال
به اشتراک گذاری در سایت های دیگر

خیلی ممنون دوست عزیز که زحمت کشیدی راهنمایی کردی ولی متاسفانه من از دیتابیس خارجی استفاده میکنم ولی شما دیتابیس رو داخل برنامه ساختین که یکم ساختارش بامال من فرق میکنه

ربطی به دیتابیس خارجی بودن و داخلی بودن دیتابیس نداره ، من خودم همیشه از دیتابیس خارجی استفاده میکنم و اتفاقا هم با همین نرم افزار SQLite Expert استفاده میکنم ، شما عکسهارو بریز تو یه پوشه خاص ، مثلا drawbale ، بعد اسمش فایل رو بریز تو دیتابیس ، هر کجا که خواستی اسم فایل رو واکشی کن ، آدرس پوشه drawbale رو بهش بده ، اینجوری که با bitmap کاری میکنی کار هم سخت تر میشه ، هم برنامه کندتر و سنگینتر کار میکنه

لینک ارسال
به اشتراک گذاری در سایت های دیگر

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...