Вообщем я хочу реализовать перетаскивание картинок в другие поля, которые бы сложили определенную комбинацию , при которой например начинает включаться ToggleButton, и обратно, если комбинация неверная. Возможно ли как-то задать условие, которое бы определяло в ImageView нужный ресурс с картинкой? Или может есть какой-то другой метод. Я не особо давно этим всем занимаюсь. Был бы рад, если бы меня натолкнули на правильную мысль. Вот код:
@SuppressLint("ClickableViewAccessibility")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_touch);
image = findViewById(R.id.image);
image2 = findViewById(R.id.image2);
image3 = findViewById(R.id.image3);
image4 = findViewById(R.id.image4);
image5 = findViewById(R.id.image5);
image6 = findViewById(R.id.image6);
btn = findViewById(R.id.btn);
text = findViewById(R.id.text);
house_check (ToggleButton) = findViewById(R.id.house_check);
image.setOnDragListener(new ChoiseDragListener());
image2.setOnDragListener(new ChoiseDragListener());
image3.setOnDragListener(new ChoiseDragListener());
image4.setOnTouchListener(new ChoiseTouchListener());
image5.setOnTouchListener(new ChoiseTouchListener());
image6.setOnTouchListener(new ChoiseTouchListener());
image4.setOnDragListener(new ChoiseDragListener());
image5.setOnDragListener(new ChoiseDragListener());
image6.setOnDragListener(new ChoiseDragListener());
image.setOnTouchListener(new ChoiseTouchListener());
image2.setOnTouchListener(new ChoiseTouchListener());
image3.setOnTouchListener(new ChoiseTouchListener());
btn.setOnClickListener(this);
}
@Override
public void onClick(View view) {
text.setText("Чисто пример действия"); }
private final class ChoiseTouchListener implements View.OnTouchListener {
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
if ((motionEvent.getAction() == MotionEvent.ACTION_DOWN) && ((ImageView) view).getDrawable() != null) {
ClipData data = ClipData.newPlainText("", "");
View.DragShadowBuilder shadowBuilder = new View.DragShadowBuilder(view);
view.startDrag(data, shadowBuilder, view,0);
return true;
} else {
return false;
}
}
}
private class ChoiseDragListener implements View.OnDragListener{
@SuppressLint("ClickableViewAccessibility")
@Override
public boolean onDrag(View view, DragEvent dragEvent) {
switch (dragEvent.getAction()){
case DragEvent.ACTION_DRAG_STARTED:
break;
case DragEvent.ACTION_DRAG_ENTERED:
break;
case DragEvent.ACTION_DROP:
ImageView target = (ImageView) view;
ImageView dragged = (ImageView) dragEvent.getLocalState();
Drawable target_draw = target.getDrawable();
Drawable dragged_draw = dragged.getDrawable();
dragged.setImageDrawable(target_draw);
target.setImageDrawable(dragged_draw);
final ImageView test = (ImageView) findViewById(R.id.image);
final Bitmap bmap = ((BitmapDrawable)test.getDrawable()).getBitmap();
Drawable myDrawable = getResources().getDrawable(R.drawable.img1);
final Bitmap myLogo = ((BitmapDrawable) myDrawable).getBitmap();
if(bmap.sameAs(myLogo))
{
house_check.setChecked(true);
}
break;
}
return true;
}
}}
Частично получается задуманное с Bitmap,но я не понимаю,что еще нужно прописать,чтобы не вылетала данная ошибка,при перетаскивании в другие позиции:
java.lang.NullPointerException: Attempt to invoke virtual method 'android.graphics.Bitmap android.graphics.drawable.BitmapDrawable.getBitmap()' on a null object reference
at com.loader.new.NowActivity$ChoiseDragListener.onDrag(NowActivity.java:142)
at android.view.View.dispatchDragEvent(View.java:21128)
at android.view.ViewGroup.dispatchDragEvent(ViewGroup.java:1566)
at android.view.ViewGroup.dispatchDragEvent(ViewGroup.java:1566)
at android.view.ViewGroup.dispatchDragEvent(ViewGroup.java:1566)
at android.view.ViewGroup.dispatchDragEvent(ViewGroup.java:1566)
at android.view.ViewGroup.dispatchDragEvent(ViewGroup.java:1566)
at android.view.ViewRootImpl.handleDragEvent(ViewRootImpl.java:6051)
at android.view.ViewRootImpl.-wrap7(ViewRootImpl.java)
at android.view.ViewRootImpl$ViewRootHandler.handleMessage(ViewRootImpl.java:4096)
at android.os.Handler.dispatchMessage(Handler.java:110)
at android.os.Looper.loop(Looper.java:203)
at android.app.ActivityThread.main(ActivityThread.java:6251)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1063)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:924)
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Нужно удалить все небуквенные символы - то есть все, кроме [a-zA-z]Есть строка string, и её нужно обработать
Можете пожалуйста пошагово объяснить, как будет происходить get(5) для списка из 10 элементов в ArrayList и в LinkedList
Я подключил к проекту кэширование через Spring CacheСначала я добавил аннотацию:
Все добрый вечер, можно ли использовать BaseViewsReduced для фильтрации и BaseViews