Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.80
curumb
0 / 0 / 0
Регистрация: 27.03.2010
Сообщений: 19
#1

Эффект наложения картинок. Выдает ошибку, что не правильно? - Android

28.08.2012, 10:35. Просмотров 1240. Ответов 5
Метки нет (Все метки)

void saveIMG(){

myFile=new File(Environment.getExternalStorageDirectory().getAbsolutePath()+"/external_sd/My_imgs");
myFile.mkdirs();
tmpc=new Time();
tmpc.setToNow();
myfilename="/"+Integer.toString(tmpc.monthDay)+"."
+Integer.toString(tmpc.month+1)+"."+
Integer.toString(tmpc.year)+"-"+"MYIMG.jpg";
myFile=new File(myFile,myfilename);
try {
myStream=new FileOutputStream(myFile);
} catch (FileNotFoundException e1) {
e1.printStackTrace();
}
try {
instr1=new FileInputStream(Environment.getExternalStorageDirectory().getAbsolutePath()+"/external_sd/My_imgs/IMG1.jpg");
} catch (FileNotFoundException e) {
e.printStackTrace();
}
try {
instr2=new FileInputStream(Environment.getExternalStorageDirectory().getAbsolutePath()+"/external_sd/My_imgs/IMG2.jpg");
} catch (FileNotFoundException e) {
e.printStackTrace();
}

ImageView myview=(ImageView)findViewById(R.id.imageView1);
Options opt=new BitmapFactory.Options();
opt.inSampleSize=4;
Bitmap bitmap1=BitmapFactory.decodeStream(instr1, null, opt);
Bitmap bitmap2=BitmapFactory.decodeStream(instr2, null, opt);
newIMG=Bitmap.createBitmap(bitmap1.getWidth(), bitmap1.getHeight(), bitmap1.getConfig());
if(!holder.getSurface().isValid()){
try{
canvas=holder.lockCanvas();
Paint paint=new Paint();
canvas=new Canvas(newIMG);
canvas.drawBitmap(bitmap1, 0,0, paint);
paint.setXfermode(new PorterDuffXfermode(android.graphics.PorterDuff.Mode.MULTIPLY));
canvas.drawBitmap(bitmap2, 0,0, paint);
holder.unlockCanvasAndPost(canvas);
myview.setImageBitmap(newIMG);
}finally{
Toast.makeText(getApplicationContext(), "saveIMG done", Toast.LENGTH_SHORT).show();
}
}
newIMG.compress(CompressFormat.JPEG, 100, myStream);
try {
myStream.flush();
} catch (IOException e) {
e.printStackTrace();
}
try {
myStream.close();
} catch (IOException e) {
e.printStackTrace();
}
try {
MediaStore.Images.Media.insertImage(getContentResolver(),
myFile.getAbsolutePath(),
myFile.getName(),
myFile.getName());
} catch (FileNotFoundException e) {
e.printStackTrace();
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.08.2012, 10:35     Эффект наложения картинок. Выдает ошибку, что не правильно?
Посмотрите здесь:

Eclipse выдает ошибку Android
Android Эмулятор выдает ошибку
Почему выдает ошибку? Android
Cursor c = db.rawQuery - выдает ошибку Android
При создании virtual device выдает ошибку Android
Android GoogleMap, getMap() выдает ошибку
Android Приложение запускается на эмуляторе, а при запуске на устройстве выдает ошибку
Android Приложение выдает ошибку, если на устройстве отключен GPS
Выдает ошибку 'Canne not resolve sybol' на FragmentStackSupport, LoaderCursorSupport, LoaderCustomSupport, Loa Android
Android Выдает ошибку: "Cannot launch AVD in emulator"
Кнопка при нажатии выдает ошибку. Как исправить? Android
Dx.bat выдает ошибку Android

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
YAUHEN
146 / 128 / 6
Регистрация: 29.07.2008
Сообщений: 506
28.08.2012, 10:59     Эффект наложения картинок. Выдает ошибку, что не правильно? #2
не могли бы вы написать что за ошибка и попытаться более описать что бы имеете ввиду под наложением картинок?
PS это что бы было всем понятней:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
void saveIMG(){ 
 
        myFile=new File(Environment.getExternalStorageDirectory().getAbsolutePath()+"/external_sd/My_imgs");
        myFile.mkdirs();
        tmpc=new Time();
        tmpc.setToNow();
        myfilename="/"+Integer.toString(tmpc.monthDay)+"."
+Integer.toString(tmpc.month+1)+"."+
Integer.toString(tmpc.year)+"-"+"MYIMG.jpg";
        myFile=new File(myFile,myfilename);
        try {
            myStream=new FileOutputStream(myFile);
        } catch (FileNotFoundException e1) {
            e1.printStackTrace();
        } 
        try {
            instr1=new FileInputStream(Environment.getExternalStorageDirectory().getAbsolutePath()+"/external_sd/My_imgs/IMG1.jpg");
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
        try {
            instr2=new FileInputStream(Environment.getExternalStorageDirectory().getAbsolutePath()+"/external_sd/My_imgs/IMG2.jpg");
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
 
        ImageView myview=(ImageView)findViewById(R.id.imageView1);
        Options opt=new BitmapFactory.Options();
        opt.inSampleSize=4;     
        Bitmap bitmap1=BitmapFactory.decodeStream(instr1, null, opt);
        Bitmap bitmap2=BitmapFactory.decodeStream(instr2, null, opt);
        newIMG=Bitmap.createBitmap(bitmap1.getWidth(), bitmap1.getHeight(), bitmap1.getConfig());
        if(!holder.getSurface().isValid()){
        try{    
        canvas=holder.lockCanvas();
        Paint paint=new Paint();
        canvas=new Canvas(newIMG);
        canvas.drawBitmap(bitmap1, 0,0, paint);
        paint.setXfermode(new PorterDuffXfermode(android.graphics.PorterDuff.Mode.MULTIPLY));
        canvas.drawBitmap(bitmap2, 0,0, paint);
        holder.unlockCanvasAndPost(canvas);
        myview.setImageBitmap(newIMG);
        }finally{
            Toast.makeText(getApplicationContext(), "saveIMG done", Toast.LENGTH_SHORT).show();
        }
        }
        newIMG.compress(CompressFormat.JPEG, 100, myStream);
        try {
            myStream.flush();
        } catch (IOException e) {
            e.printStackTrace();
        }
        try {
            myStream.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    try {
            MediaStore.Images.Media.insertImage(getContentResolver(),
                    myFile.getAbsolutePath(),
                    myFile.getName(),
                    myFile.getName());
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
curumb
0 / 0 / 0
Регистрация: 27.03.2010
Сообщений: 19
28.08.2012, 11:32  [ТС]     Эффект наложения картинок. Выдает ошибку, что не правильно? #3
Цитата Сообщение от YAUHEN Посмотреть сообщение
не могли бы вы написать что за ошибка и попытаться более описать что бы имеете ввиду под наложением картинок?
PS это что бы было всем понятней:
0


Суть дела: из списка выбирается две картинки (одна фотография, другая - рамка для нее - суть наложения рамки на фотографию). При нажатии на кнопку "сохранить", приложение принудительно закрывается. Eclipse ошибок никаких не выдает, поэтому не могу понять где что не правильно сделал.
YAUHEN
146 / 128 / 6
Регистрация: 29.07.2008
Сообщений: 506
28.08.2012, 11:36     Эффект наложения картинок. Выдает ошибку, что не правильно? #4
Цитата Сообщение от curumb Посмотреть сообщение
Eclipse ошибок никаких не выдает, поэтому не могу понять где что не правильно сделал.
для этого существует Logcat
если вам надо намалявать рамку на битмапке то поробуйте это или сразу это
curumb
0 / 0 / 0
Регистрация: 27.03.2010
Сообщений: 19
28.08.2012, 14:27  [ТС]     Эффект наложения картинок. Выдает ошибку, что не правильно? #5
08-28 11:15:28.342: E/ActivityManager(71): ANR in my.camera.foto (my.camera.foto/.MainActivity)
08-28 11:15:28.342: E/ActivityManager(71): Reason: keyDispatchingTimedOut
08-28 11:15:28.342: E/ActivityManager(71): Load: 1.05 / 2.8 / 1.5
08-28 11:15:28.342: E/ActivityManager(71): CPU usage from 19069ms to 0ms ago:
08-28 11:15:28.342: E/ActivityManager(71): 4.9% 71/system_server: 3.8% user + 1% kernel / faults: 25 minor
08-28 11:15:28.342: E/ActivityManager(71): 0.5% 133/zygote: 0.3% user + 0.2% kernel / faults: 5 minor
08-28 11:15:28.342: E/ActivityManager(71): 0.1% 34/mediaserver: 0% user + 0.1% kernel
08-28 11:15:28.342: E/ActivityManager(71): 0.1% 41/adbd: 0% user + 0.1% kernel
08-28 11:15:28.342: E/ActivityManager(71): 0.1% 130/zygote: 0% user + 0% kernel / faults: 2 minor
08-28 11:15:28.342: E/ActivityManager(71): 0% 4/events/0: 0% user + 0% kernel
08-28 11:15:28.342: E/ActivityManager(71): 7.2% TOTAL: 5.2% user + 1.9% kernel + 0% softirq
08-28 11:15:28.342: E/ActivityManager(71): CPU usage from 3202ms to 4017ms later:
08-28 11:15:28.342: E/ActivityManager(71): 35% 71/system_server: 17% user + 18% kernel / faults: 4 minor
08-28 11:15:28.342: E/ActivityManager(71): 30% 102/InputDispatcher: 8.6% user + 22% kernel
08-28 11:15:28.342: E/ActivityManager(71): 3.7% 72/HeapWorker: 2.4% user + 1.2% kernel
08-28 11:15:28.342: E/ActivityManager(71): 1.2% 76/Compiler: 1.2% user + 0% kernel
08-28 11:15:28.342: E/ActivityManager(71): 1.2% 41/adbd: 0% user + 1.2% kernel
08-28 11:15:28.342: E/ActivityManager(71): 1.2% 67/logcat: 0% user + 1.2% kernel
08-28 11:15:28.342: E/ActivityManager(71): 44% TOTAL: 19% user + 25% kernel
08-28 11:15:28.472: I/InputDispatcher(71): Dropping event because the pointer is not down.
YAUHEN
146 / 128 / 6
Регистрация: 29.07.2008
Сообщений: 506
28.08.2012, 15:34     Эффект наложения картинок. Выдает ошибку, что не правильно? #6
это значит что у приложения my.camera.foto (my.camera.foto/.MainActivity) в UI потоке выполняется долго (более 5и секунд) операция которая его тормозит. все долгосрочные операции надо выполнять не в UI потоке. я бы вам посоветовал продебажить код для выяснения причины тормазов.
Yandex
Объявления
28.08.2012, 15:34     Эффект наложения картинок. Выдает ошибку, что не правильно?
Ответ Создать тему
Опции темы

Текущее время: 07:41. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru