|  5.11.2014 / 21:58 |  | 
| andreyKorotayev    Пользователь 
  Сейчас: Offline 
 Имя: АндрейОткуда: Запорожье
 Регистрация: 19.05.2014
 
 | Народ кто то реализовывал в своих программах перетаскивание элементов ListView?Помогите плиз .Нашел одну библиотеку ну не как не выходит ее запилить в мой проект.Она не подходит.Например тот же Photoshop touch,управление порядком отображения слоев
 | 
|  5.11.2014 / 22:09 |  | 
| aNNiMON   Супервизор 
  Сейчас: Offline 
 Имя: ВитёкРегистрация: 11.01.2010
 
 | andreyKorotayev, в любом случае всё сводится к разбору примеров библиотеки и хоть небольшому чтению документации. Что за библиотека? И что не получается?__________________
 
   let live | 
|  5.11.2014 / 22:16 |  | 
| andreyKorotayev    Пользователь 
  Сейчас: Offline 
 Имя: АндрейОткуда: Запорожье
 Регистрация: 19.05.2014
 
 | Библиотека drag-sort-listview-masterАвтор Carl Bauer
 
 | 
|  5.11.2014 / 22:18 |  | 
| andreyKorotayev    Пользователь 
  Сейчас: Offline 
 Имя: АндрейОткуда: Запорожье
 Регистрация: 19.05.2014
 
 | И как я понял в ней можно выводить только на полный экран-listActivity , да и компилятор жестко ругаеться
 | 
|  5.11.2014 / 22:25 |  | 
| Naik    Пользователь 
  Сейчас: Offline 
 Имя: %name%Регистрация: 14.03.2010
 
 | andreyKorotayev,  я делал так. В Activity это  @Override    public boolean dispatchTouchEvent(MotionEvent event) {        if (touchHandleListener != null) {            touchHandleListener.onActivityTouch(event);        }        return super.dispatchTouchEvent(event);    }     public void setTouchHandleListener(TouchHandleListener l) {        touchHandleListener = l;    }  public interface TouchHandleListener {         void onActivityTouch(MotionEvent event);    }
И класс-контроллер Открыть спойлер Закрыть спойлер package ua.naiksoftware.musicstream; import android.app.Activity;import android.support.v4.app.Fragment;import android.view.MotionEvent;import android.view.View;import android.view.ViewGroup;import android.view.ViewGroup.LayoutParams;import android.view.animation.AnimationUtils;import android.widget.FrameLayout;import android.widget.GridView;import android.widget.ImageView;import java.util.ArrayList;import android.view.animation.Animation;import android.graphics.Bitmap;import android.util.Log;import android.graphics.Color;import android.graphics.PorterDuff;import android.graphics.Rect;import android.widget.Toast; public class DragController implements MainActivity.TouchHandleListener {     private static final String tag = DragController.class.getName();     private Fragment fragment;    private StationView stationView;    private View draggedView;    private ImageView imageDragView;// Временное изображение, которое следует за пальцем при D&D    private ImageView dropContainer;    private ViewGroup dragContainer;    private GridView gridView;    private StationAdapter gridAdapter;    private static final FrameLayout.LayoutParams dragParams = new FrameLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);    private static boolean drag;    private static boolean drop;    private static Animation animClear;     public DragController(Fragment fragment, StationAdapter gridAdapter) {        this.fragment = fragment;        this.gridAdapter = gridAdapter;        Activity activity = fragment.getActivity();        dropContainer = (ImageView) activity                .findViewById(R.id.fragment_stationsDeleteBar);        dragContainer = (ViewGroup) activity                .findViewById(R.id.fragment_stationsDragContainer);        gridView = (GridView) activity                .findViewById(R.id.fragment_stationsGridView);         imageDragView = new ImageView(activity);        FrameLayout.LayoutParams lp = new FrameLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);        imageDragView.setLayoutParams(lp);         animClear = AnimationUtils.loadAnimation(activity, R.anim.clear);        animClear.setAnimationListener(animListener);         ((MainActivity) activity).setTouchHandleListener(this);    }     @Override    public void onActivityTouch(MotionEvent event) {        //toast("onActivityTouch(" + event.getAction() + ") " + drag);        if (drag) {            int[] loc = new int[2];            dropContainer.getLocationOnScreen(loc);            Rect rectDrop = new Rect(loc[0], loc[1], loc[0] + dropContainer.getWidth(), loc[1] + dropContainer.getHeight());            dragContainer.getLocationOnScreen(loc);            final int rawX = (int) event.getX();            final int rawY = (int) event.getY();            int x = rawX - loc[0] - imageDragView.getWidth() / 2;            int y = rawY - loc[1] - imageDragView.getHeight() / 2;            int act = event.getAction();            if (act == MotionEvent.ACTION_DOWN || act == MotionEvent.ACTION_MOVE) {                // If setTranslation, animation not working.                //dragView.setTranslationX(x);                //dragView.setTranslationY(y);                if (x + imageDragView.getWidth() > dragContainer.getWidth()) {                    x = dragContainer.getWidth() - imageDragView.getWidth();                } else if (x < 0) {                    x = 0;                }                dragParams.leftMargin = x;                dragParams.topMargin = y;                imageDragView.setLayoutParams(dragParams);                if (rectDrop.contains(rawX, rawY)) {                    if (!drop) {                        dropContainer.getBackground().setColorFilter(Color.RED, PorterDuff.Mode.MULTIPLY);                        drop = true;                    }                } else {                    dropContainer.getBackground().clearColorFilter();                    drop = false;                }                //toast("new coords = " + dragView.getTranslationX() + ", " + dragView.getTranslationY());            } else {                if (rectDrop.contains(rawX, rawY)) {                    drag = false;                    imageDragView.startAnimation(animClear);                } else {                    imageDragView.clearColorFilter();                    dragContainer.removeView(imageDragView);                    dropContainer.setVisibility(View.GONE);                    drag = false;                    if (draggedView != null) {                        draggedView.setVisibility(View.VISIBLE);                    }                    StationView.allowNewDrag();                }            }        }    }     public void startDrag(StationView stationView) {        this.stationView = stationView;        draggedView = (View) stationView.getParent();        dropContainer.setVisibility(View.VISIBLE);        Bitmap dragBitmap = getViewBitmap(draggedView);        imageDragView.setImageBitmap(dragBitmap);        imageDragView.setColorFilter(Color.RED, PorterDuff.Mode.LIGHTEN);        draggedView.setVisibility(View.INVISIBLE);        dragContainer.addView(imageDragView);        drag = true;    }     private void removeStation(StationInfo info) {        ArrayList<StationInfo> list = gridAdapter.getArrayList();        if (list.remove(info)) {            gridView.setAdapter(new StationAdapter(fragment, list));        }    }     private Animation.AnimationListener animListener = new Animation.AnimationListener() {         @Override        public void onAnimationStart(Animation anim) {        }         @Override        public void onAnimationEnd(Animation anim) {            if (anim == animClear) {                removeStation(stationView.getStationInfo());                imageDragView.clearColorFilter();                dragContainer.removeView(imageDragView);                dropContainer.setVisibility(View.GONE);                drop = false;                StationView.allowNewDrag();            }        }         @Override        public void onAnimationRepeat(Animation anim) {        }    };     private static Bitmap getViewBitmap(View v) {        //v.clearFocus();        //v.setPressed(false);         boolean willNotCache = v.willNotCacheDrawing();        v.setWillNotCacheDrawing(false);         // Reset the drawing cache background color to fully transparent        // for the duration of this operation        int color = v.getDrawingCacheBackgroundColor();        v.setDrawingCacheBackgroundColor(0);         if (color != 0) {            v.destroyDrawingCache();        }        v.buildDrawingCache();        Bitmap cacheBitmap = v.getDrawingCache();        if (cacheBitmap == null) {            Log.e(tag, "failed getViewBitmap(" + v + ")", new RuntimeException());            return null;        }         Bitmap bitmap = Bitmap.createBitmap(cacheBitmap);         // Restore the view        v.destroyDrawingCache();        v.setWillNotCacheDrawing(willNotCache);        v.setDrawingCacheBackgroundColor(color);         return bitmap;    }     private void toast(String msg) {        //filelog.Log.d(tag, msg);        Toast.makeText(fragment.getActivity(), msg, Toast.LENGTH_SHORT).show();    }}
Как работает можно посмотреть по длинному нажатию на станцию здесь http://dbwap.ru/7843841 Только это GridView. В API есть спец. классы для такого, но только в новых версиях ОСИзменено Naik (5.11 / 22:27) (всего 3 раза)
 | 
|  5.11.2014 / 22:37 |  | 
| andreyKorotayev    Пользователь 
  Сейчас: Offline 
 Имя: АндрейОткуда: Запорожье
 Регистрация: 19.05.2014
 
 | С этим drag n drop мозг закипает, психану и на канвасе сделаю из графики
 | 
|  6.11.2014 / 01:17 |  | 
| eNvisible    Пользователь 
  Сейчас: Offline 
 Имя: ****Откуда: В России.
 Регистрация: 19.07.2014
 
 | andreyKorotayev,  Такая же ерунда. Делал тут меню для игры на лэйаутах... В итоге плюнул и на канве переделал) Не скажу, что совсем в них не разбераюсь, но эти разметки меня дико напрягают    | 
|  7.11.2014 / 13:27 |  | 
| swank    Пользователь 
  Сейчас: Offline 
 Имя: ВиталийОткуда: Киев
 Регистрация: 07.09.2012
 
 | Вдохновленный phprunner'ом я пошол искать другие сервера т.к. На phprunnere даже johncms норм не запустился, а виной тому автозагрузка классов spl_autoload_registr() В маркете бесплатного, хорошего я нечего не нашол, решил сам попробовать собрать, nginx легко запустил, а вот php не как не могу запустить, запускаю такой командой  ./data/data/ua.the-swank.nginxserver/components/php/sbin/php-cgi -a -b 127.0.0.1:9009 -c /data/data/ua.the-swank.nginxserver/components/php/conf/php.ini
Ошибки не какие не выскакивают но и в деспечере задач php-cgi нету Подскажите что не так делаю? | 
|  7.11.2014 / 15:50 |  | 
| Naik    Пользователь 
  Сейчас: Offline 
 Имя: %name%Регистрация: 14.03.2010
 
 | swank,  в каком еще диспетчере?     ps | grep php | 
|  7.11.2014 / 17:04 |  | 
| Virus-ON    Пользователь 
  Сейчас: Offline 
 Имя: МаксОткуда: Чернигов
 Регистрация: 13.10.2011
 
 | swank (07.11.2014/13:27)Вдохновленный phprunner'ом я пошол искать другие сервера т.к. На phprunnere даже johncms норм не запустился, а виной тому автозагрузка классов spl_autoload_registr()
 В маркете бесплатного, хорошего я
 Может попробуешь руками собрать(пых и всё остальное? Авось поможет. [url=http://m.habrahabr.ru/company/xakep/blog/208518/  ]Тыц[/url] И в каком диспечере, присоеденюсь к вопросу. Изменено Virus-ON (7.11 / 17:06) (всего 2 раза)
 |