Arrasta e Solta

  • Respostas:0
Luciano Amarante
  • Posts no fórum: 1

17/07/2016, 07:21:08 via Web

Olá Levi.

Estou com o seguinte problema nas mãos,
Estou realizando um projeto para Crianças Autistas, o que é uma criança Autista, esta criança não se comunica por fala pois eles não falam só se comunica por imagem.

Então estou realizando este projeto em Tablet para disponibilizar para que porém se comunicar mais fácil.

O projeto vai ser composta de um Tablet com o programa como esta na imagem a seguir.

![image][1]

Como vou tentar fazer funcionar, vejamos que tem 6 áreas, sendo as áreas de baixo área 4, área 5 e área 6 as que conte as imagens inicias, e vão distribuir para as demais.
Porém temos umas restrições
1) A área 5 só pode envia imagens para a área 2, e somente! Se as crianças tentarem colocar as imagens da área 5 nas áreas 1 e 3, o programa deve negar ou seja não deve aceitar o arrasta e solta.
Isso também é valido para as demais áreas.
2) A área 4 só pode envia imagens para a área 1, e somente! Se as crianças tentarem colocar as imagens da área 4 nas áreas 2 e 3, o programa deve negar ou seja não deve aceitar o arrasta e solta.
3) A área 6 só pode envia imagens para a área 3, e somente! Se as crianças tentarem colocar as imagens da área 6 nas áreas 1 e 2, o programa deve negar ou seja não deve aceitar o arrasta e solta.
4) Nas áreas 1 , 2 e 3 estas áreas so devem aceitar uma e somente uma imagem.
5) Este caixa de texto embaixo eu vou tirar depois de pronto pois não tem sentido algum so esta ali pois no exemplo de onde eu tirei este código fonte esta com ela, mas esta por enquanto servindo para eu saber como esta funcionando do projeto.

os fontes que tenho são

############################## Java > MainActivity

package ;

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

import android.support.v7.app.AppCompatActivity;
import android.text.method.ScrollingMovementMethod;
import android.app.Activity;
import android.content.ClipData;
import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.view.DragEvent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.DragShadowBuilder;
import android.view.View.OnDragListener;
import android.view.View.OnLongClickListener;
import android.view.ViewGroup;
import android.widget.AbsListView;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView.OnItemLongClickListener;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

LinearLayout area1, area2, area3, area4, area5, area6;
TextView prompt;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    area1 = (LinearLayout) findViewById(R.id.area1);
    area2 = (LinearLayout) findViewById(R.id.area2);
    area3 = (LinearLayout) findViewById(R.id.area3);
    area4 = (LinearLayout) findViewById(R.id.area4);
    area5 = (LinearLayout) findViewById(R.id.area5);
    area6 = (LinearLayout) findViewById(R.id.area6);

    prompt = (TextView) findViewById(R.id.prompt);
    // make TextView scrollable
    prompt.setMovementMethod(new ScrollingMovementMethod());
    //clear prompt area if LongClick

    prompt.setOnLongClickListener(new OnLongClickListener(){

        @Override
        public boolean onLongClick(View v) {
            prompt.setText("");
            return true;
        }});

    TypedArray arrayResources = getResources().obtainTypedArray(
            R.array.resicon);

    for (int i = 0; i < arrayResources.length(); i++) {
        ImageView imageView = new ImageView(this);
        imageView.setImageDrawable(arrayResources.getDrawable(i));
        imageView.setOnLongClickListener(myOnLongClickListener);
        area4.addView(imageView);
        //area5.addView(imageView);
        //area6.addView(imageView);
    }

    for (int i = 0; i < arrayResources.length(); i++) {
        ImageView imageView = new ImageView(this);
        imageView.setImageDrawable(arrayResources.getDrawable(i));
        imageView.setOnLongClickListener(myOnLongClickListener);
        //area4.addView(imageView);
        area5.addView(imageView);
        //area6.addView(imageView);
    }

    for (int i = 0; i < arrayResources.length(); i++) {
        ImageView imageView = new ImageView(this);
        imageView.setImageDrawable(arrayResources.getDrawable(i));
        imageView.setOnLongClickListener(myOnLongClickListener);
        //area4.addView(imageView);
        //area5.addView(imageView);
        area6.addView(imageView);
    }

    arrayResources.recycle();

    area1.setOnDragListener(myOnDragListener);
    area2.setOnDragListener(myOnDragListener);
    area3.setOnDragListener(myOnDragListener);
    area4.setOnDragListener(myOnDragListener);
    area5.setOnDragListener(myOnDragListener);
    area6.setOnDragListener(myOnDragListener);
}

OnLongClickListener myOnLongClickListener = new OnLongClickListener() {

    @Override
    public boolean onLongClick(View v) {
        ClipData data = ClipData.newPlainText("", "");
        DragShadowBuilder shadowBuilder = new View.DragShadowBuilder(v);
        v.startDrag(data, shadowBuilder, v, 0);
        //v.setVisibility(View.INVISIBLE);
        //v.startDragAndDrop(data, shadowBuilder, v, 0);
        return true;
    }

};

OnDragListener myOnDragListener = new OnDragListener() {

    @Override
    public boolean onDrag(View v, DragEvent event) {

        String area;
        if (v == area1){
            area = "area1";
        }else if (v == area2){
            area = "area2";
        }else if (v == area3){
            area = "area3";
        }else if (v == area4){
            area = "area4";
        }else if (v == area5){
            area = "area5";
        }else if (v == area6){
            area = "area6";
        }else {
            area = "unknown";
        }

        switch (event.getAction()) {
            case DragEvent.ACTION_DRAG_STARTED:
                prompt.append("ACTION_DRAG_STARTED: " + area  + "\n");
                break;

            case DragEvent.ACTION_DRAG_ENTERED:
                prompt.append("ACTION_DRAG_ENTERED: " + area  + "\n");
                break;

            case DragEvent.ACTION_DRAG_EXITED:
                prompt.append("ACTION_DRAG_EXITED: " + area  + "\n");
                break;

            case DragEvent.ACTION_DROP:
                prompt.append("ACTION_DROP: " + area  + "\n");
                View view = (View)event.getLocalState();
                LinearLayout oldParent = (LinearLayout)view.getParent();
                oldParent.removeView(view);
                LinearLayout newParent = (LinearLayout)v;
                newParent.addView(view);
                break;

            case DragEvent.ACTION_DRAG_ENDED:
                prompt.append("ACTION_DRAG_ENDED: " + area  + "\n");

            default:
                break;
        }
        return true;
    }

};

}

########################################################## ############################# res > layout > activity_main.xml


xmlns:tools=" "
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.amarante.autista.MainActivity">

<FrameLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_centerHorizontal="true">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical" >

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="2"
            android:background="#202020"
            android:orientation="horizontal" >

            <LinearLayout
                android:id="@+id/area4"
                android:layout_width="0dp"
                android:layout_height="134dp"
                android:layout_weight="0.99"
                android:layout_margin="4dp"
                android:background="@android:color/holo_blue_light"
                android:orientation="horizontal"
                android:layout_gravity="bottom"
                android:gravity="bottom|center" >
            </LinearLayout>

            <LinearLayout
                android:id="@+id/area1"
                android:layout_width="0dp"
                android:layout_height="134dp"
                android:layout_weight="0.99"
                android:layout_margin="4dp"
                android:background="@android:color/holo_blue_dark"
                android:orientation="vertical" >
            </LinearLayout>

            <LinearLayout
                android:id="@+id/area5"
                android:layout_width="0dp"
                android:layout_height="134dp"
                android:layout_weight="1"
                android:layout_margin="4dp"
                android:background="@android:color/holo_green_light"
                android:orientation="horizontal"
                android:layout_gravity="bottom"
                android:gravity="center" >
            </LinearLayout>

            <LinearLayout
                android:id="@+id/area2"
                android:layout_width="0dp"
                android:layout_height="134dp"
                android:layout_weight="1"
                android:layout_margin="4dp"
                android:background="@android:color/holo_green_dark"
                android:orientation="vertical" >
            </LinearLayout>

            <LinearLayout
                android:id="@+id/area6"
                android:layout_width="0dp"
                android:layout_height="134dp"
                android:layout_weight="0.99"
                android:layout_margin="4dp"
                android:background="@android:color/holo_orange_light"
                android:orientation="horizontal"
                android:layout_gravity="bottom"
                android:gravity="top|center" >
            </LinearLayout>

            <LinearLayout
                android:id="@+id/area3"
                android:layout_width="0dp"
                android:layout_height="134dp"
                android:layout_weight="0.99"
                android:layout_margin="4dp"
                android:background="@android:color/holo_orange_dark"
                android:orientation="vertical" >
            </LinearLayout>

        </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1"
            android:orientation="vertical" >

            <TextView
                android:id="@+id/prompt"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:background="@android:color/black"
                android:textColor="@android:color/white"
                android:gravity="bottom" />
        </LinearLayout>
    </LinearLayout>


</FrameLayout>

# ############################################ res > layout > row.xml


android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >

<ImageView
    android:id="@+id/rowImageView"
    android:layout_gravity="center"
    android:layout_width="48dp"
    android:layout_height="48dp" />

<TextView
    android:id="@+id/rowTextView"
    android:layout_gravity="center"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />

# ############################ res > values > arrays.xml


<array name="resicon">
    <item>@android:drawable/ic_dialog_alert</item>
    <item>@android:drawable/ic_dialog_dialer</item>
    <item>@android:drawable/ic_dialog_email</item>

</array>

# ######### res > values > ids.xml


<item name="area1" type="id" />
<item name="area2" type="id" />

<item name="area3" type="id" />
<item name="area4" type="id" />

<item name="area5" type="id" />
<item name="area6" type="id" />

#

Posso enviar o projeto todo é só enviar uma e-mail pedindo para analise na caixa

lucianoa2018@gmail.com

Grato pela atenção.

Att.

Responder