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

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

Войти
Регистрация
Восстановить пароль
 
spydark91
85 / 85 / 2
Регистрация: 03.03.2011
Сообщений: 1,872
#1

Выбор фрагмента на картинке фильтром - Android

11.06.2013, 17:20. Просмотров 420. Ответов 8
Метки нет (Все метки)

Может быть есть какой-нибудь стандартный способ выбирать кусок картинки, наложив на оставшуюся часть картинки фильтр
есть идея, но она попахивает супер извращенным велосипедом

Добавлено через 19 часов 17 минут
нет идей?)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
YuraAAA
1564 / 1306 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
11.06.2013, 20:48     Выбор фрагмента на картинке фильтром #2
click
spydark91
85 / 85 / 2
Регистрация: 03.03.2011
Сообщений: 1,872
12.06.2013, 20:31  [ТС]     Выбор фрагмента на картинке фильтром #3
посмотрел повнимательнее пример с того сайта, это несколько не то, что требуется

нарисовал картинку
надо чтобы незакрашенный прямоугольник можно было перемещать пальцем, а там где заштриховано был наложен фильтр, как в вашем примере

у меня идея наложить сверху 4 TextView`ера, скажем, и регулировать их высоту и ширину.. но это как то не очень смотрится..
spydark91
85 / 85 / 2
Регистрация: 03.03.2011
Сообщений: 1,872
12.06.2013, 20:32  [ТС]     Выбор фрагмента на картинке фильтром #4
картинка
Миниатюры
Выбор фрагмента на картинке фильтром  
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
12.06.2013, 22:33     Выбор фрагмента на картинке фильтром #5
берете картинку и рисуете поверх 4 прямоугольники.
spydark91
85 / 85 / 2
Регистрация: 03.03.2011
Сообщений: 1,872
14.06.2013, 21:14  [ТС]     Выбор фрагмента на картинке фильтром #6
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
package com.example.pr;
 
import android.R.color;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.util.Log;
import android.widget.ImageView;
 
public class pictureView extends ImageView {
    
    public pictureView(Context context) {
        super(context);
    }
    public void onDraw(Canvas canvas) {
        Paint p = new Paint();
        p.setColor(color.holo_red_dark);
        canvas.drawRect(0, 0, getWidth(), getHeight(), p);
        Log.d("s","sss");
        super.onDraw(canvas);
    }
 
}
XML
1
2
3
4
5
        <com.example.pr.pictureView
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:id="@+id/img"
            android:src="@drawable/qs"  />
Java
1
2
3
final pictureView img = (pictureView)findViewById(R.id.img);
                ans.setBounds(0, 0, ans.getIntrinsicWidth(), ans.getIntrinsicHeight());
                img.setImageDrawable(ans);
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
06-14 17:05:58.766: D/AndroidRuntime(2334): Shutting down VM
06-14 17:05:58.766: W/dalvikvm(2334): threadid=1: thread exiting with uncaught exception (group=0x40015560)
06-14 17:05:58.786: E/AndroidRuntime(2334): FATAL EXCEPTION: main
06-14 17:05:58.786: E/AndroidRuntime(2334): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.pr/com.example.pr.userImgDialog_Activity}: android.view.InflateException: Binary XML file line #17: Error inflating class com.example.pr.pictureView
06-14 17:05:58.786: E/AndroidRuntime(2334):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647)
06-14 17:05:58.786: E/AndroidRuntime(2334):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
06-14 17:05:58.786: E/AndroidRuntime(2334):     at android.app.ActivityThread.access$1500(ActivityThread.java:117)
06-14 17:05:58.786: E/AndroidRuntime(2334):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
06-14 17:05:58.786: E/AndroidRuntime(2334):     at android.os.Handler.dispatchMessage(Handler.java:99)
06-14 17:05:58.786: E/AndroidRuntime(2334):     at android.os.Looper.loop(Looper.java:123)
06-14 17:05:58.786: E/AndroidRuntime(2334):     at android.app.ActivityThread.main(ActivityThread.java:3683)
06-14 17:05:58.786: E/AndroidRuntime(2334):     at java.lang.reflect.Method.invokeNative(Native Method)
06-14 17:05:58.786: E/AndroidRuntime(2334):     at java.lang.reflect.Method.invoke(Method.java:507)
06-14 17:05:58.786: E/AndroidRuntime(2334):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
06-14 17:05:58.786: E/AndroidRuntime(2334):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
06-14 17:05:58.786: E/AndroidRuntime(2334):     at dalvik.system.NativeStart.main(Native Method)
06-14 17:05:58.786: E/AndroidRuntime(2334): Caused by: android.view.InflateException: Binary XML file line #17: Error inflating class com.example.pr.pictureView
06-14 17:05:58.786: E/AndroidRuntime(2334):     at android.view.LayoutInflater.createView(LayoutInflater.java:508)
06-14 17:05:58.786: E/AndroidRuntime(2334):     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:570)
06-14 17:05:58.786: E/AndroidRuntime(2334):     at android.view.LayoutInflater.rInflate(LayoutInflater.java:623)
06-14 17:05:58.786: E/AndroidRuntime(2334):     at android.view.LayoutInflater.inflate(LayoutInflater.java:408)
06-14 17:05:58.786: E/AndroidRuntime(2334):     at android.view.LayoutInflater.inflate(LayoutInflater.java:320)
06-14 17:05:58.786: E/AndroidRuntime(2334):     at android.view.LayoutInflater.inflate(LayoutInflater.java:276)
06-14 17:05:58.786: E/AndroidRuntime(2334):     at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:207)
06-14 17:05:58.786: E/AndroidRuntime(2334):     at android.app.Activity.setContentView(Activity.java:1657)
06-14 17:05:58.786: E/AndroidRuntime(2334):     at com.example.pr.userImgDialog_Activity.onCreate(userImgDialog_Activity.java:44)
06-14 17:05:58.786: E/AndroidRuntime(2334):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
06-14 17:05:58.786: E/AndroidRuntime(2334):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
06-14 17:05:58.786: E/AndroidRuntime(2334):     ... 11 more
06-14 17:05:58.786: E/AndroidRuntime(2334): Caused by: java.lang.NoSuchMethodException: pictureView(Context,AttributeSet)
06-14 17:05:58.786: E/AndroidRuntime(2334):     at java.lang.Class.getMatchingConstructor(Class.java:643)
06-14 17:05:58.786: E/AndroidRuntime(2334):     at java.lang.Class.getConstructor(Class.java:472)
06-14 17:05:58.786: E/AndroidRuntime(2334):     at android.view.LayoutInflater.createView(LayoutInflater.java:480)
06-14 17:05:58.786: E/AndroidRuntime(2334):     ... 21 more
06-14 17:10:58.915: I/Process(2334): Sending signal. PID: 2334 SIG: 9
не пойму в чем дело..

Добавлено через 1 минуту
строчка 17 в xml файле, это как раз com.example.geodating.pictureView
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
14.06.2013, 21:23     Выбор фрагмента на картинке фильтром #7
не хватает конструктора
Java
1
pictureView(Context,AttributeSet)
spydark91
85 / 85 / 2
Регистрация: 03.03.2011
Сообщений: 1,872
14.06.2013, 21:46  [ТС]     Выбор фрагмента на картинке фильтром #8
Java
1
2
3
4
5
6
7
    public void onDraw(Canvas canvas) {
        Paint p = new Paint();
        p.setColor(getResources().getColor(R.color.general_screen_picture_bg));
        canvas.drawRect(0, 0, getWidth(), getHeight(), p);
        Log.d("s","sss");
        super.onDraw(canvas);
    }
таким макаром картинка получается сверху..
как сделать чтоб нарисованное мной было сверху?

Добавлено через 2 минуты
наверно надо вызвать перересовку после установки картинки

Добавлено через 15 секунд
как?

Добавлено через 4 минуты
Java
1
img.invalidate();
нашел

но загруженная картинка всеравно сверху..
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.06.2013, 21:48     Выбор фрагмента на картинке фильтром
Еще ссылки по теме:

Android Передача даных с фрагмента к фрагменту!
Android Открытие фрагмента NawDrawer
Android TabActivity исчезает содержимое фрагмента
Обращение к элементам фрагмента из активити Android
Android Повторное создание фрагмента внутри фрагмента ViewPager

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

Или воспользуйтесь поиском по форуму:
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
14.06.2013, 21:48     Выбор фрагмента на картинке фильтром #9
Java
1
2
3
4
5
6
7
8
 public void onDraw(Canvas canvas) {
        super.onDraw(canvas);
 
        Paint p = new Paint();
        p.setColor(getResources().getColor(R.color.general_screen_picture_bg));
        canvas.drawRect(0, 0, getWidth(), getHeight(), p);
        Log.d("s","sss");
    }
Yandex
Объявления
14.06.2013, 21:48     Выбор фрагмента на картинке фильтром
Ответ Создать тему
Опции темы

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