2013-11-14 16 views
0

I, m, сделав первый шаг в движении растровых изображений. Из битов в Интернете я создал этот простой код. Растровое изображение перемещается по экрану от верхнего левого угла вверх, справа - от экрана и обратно на 0,0. Что я хочу сделать, это добавить кнопку или метод, чтобы вручную перемещать изображение. Я, m, только используя этот единственный класс и заметил, что он не использует main_activity xml Или это делает? Если кто-то может показать мне в этом 1 направлении, я могу дублировать другие направления. Если Youd хотел бы добавить код, оленья кожа гаснет экран будет бонусcontrolm растровое изображение вручную

public class MainActivity extends Activity {  
int x=0; 
int y=0; 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(new myView(this)); } 

private class myView extends View{ 
public myView(Context context) { 
super(context); } 

@Override 
protected void onDraw(Canvas canvas) { 
Bitmap myBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.richinch); 

if (x < canvas.getWidth()){x +=10;} 
else {x=0;} 
    canvas.drawBitmap(myBitmap, x, y, null); 

     invalidate(); 

    }}} 

Ive добавили этот код и читать немного на OnTouch слушателя. Как бы добавить это к региону или Rectangle, это было бы очень полезно, так что я, m, использовал Bitmap в качестве кнопки, если бы был ключ кнопки с помощью onclick, Basicall im пытался сделать 2 кнопки Bitmap, чтобы переместить изображение. Left Right now now Во всех направлениях. Пожалуйста, используйте имена им с помощью если не создавая вершинного например Int и т.д.

Paint green = new Paint(); 
green.setColor(Color.RED); 
green.setStyle(Paint.Style.FILL); 
////creating the shape////   
Rect rect= new Rect(); 
rect.set(0, 0,x+50, x+50); 
canvas.drawRect(rect,green); 
Region region = new Region(0, 950, 100, 1030); 
+0

вы могли бы иметь собственный макет. имеют линейный макет или относительный макет в пользовательском макете и добавьте представление 'myView' в ваш макет. У вас также есть кнопки в вашем настраиваемом макете – Raghunandan

+0

, можете ли вы объяснить это немного подробнее. как создать собственный макет, я помещаю макет в основной XML или создаю новый XML. Если да, то как бы я назову этот слой в свою основную деятельность? –

ответ

0

Я не совсем уверен, что вы хотите достичь, но если вы хотите сделать анимацию, избегать использования OnDraw() и пусть ObjectAnimator сделать «Перемещение» для вас. Вот detailed tutorial на нем.

Минимальный код, который нужно:

ObjectAnimator animation = ObjectAnimator.ofFloat(yourObject, "x", xDest); 
animation.setDuration(500); // milliseconds 
animation.start(); 
+0

Итак, как бы я использовал это в своем коде, и это позволит мне добавить кнопку –

+0

Просто передайте объект, который необходимо анимировать (ваш объект). Оберните эти 3 строки в метод void и вызовите его, когда вам это нужно. –

0

Вы не используете XML

эту часть здесь: setContentView (новый MyView (это)); где вы бы добавили свой xml-файл setContentView (R.layout.mainxml)

Если вы хотите перемещаться по растровому изображению с помощью пальца, ознакомьтесь с этими учебниками. Они делают именно это, и вы будете учиться пользоваться SurfaceView

http://www.eis4u.com/2012/02/13/playing-with-graphics-in-android-part-i/ http://www.eis4u.com/2012/02/13/playing-with-graphics-in-android-part-ii/ http://www.eis4u.com/2012/02/13/playing-with-graphics-in-android-part-iii/

+0

Я посмотрел, что это хорошо и плохо для меня. Все умение в данный момент заключается в том, как перемещать растровые изображения с помощью растровых изображений кнопок или областей, а Ontouch - это слова, выскакивающие из моих исследований –

Смежные вопросы