2013-09-18 3 views
-1

это мой первый вопрос! У меня есть активность (MainActivity) и View (PanZoomView), которые можно масштабировать. МакетАктивность/взаимодействие с холстом

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" > 

    <com.example.canvastest.PanZoomView 
     android:id="@+id/zoomview" 
     android:layout_width="300dp" 
     android:layout_height="300dp" /> 
    <TextView 
     android:id="@+id/tv_mPosX" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:text="@string/hello_world" /> 
    <TextView 
     android:id="@+id/tv_mPosY" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:text="@string/hello_world" /> 
</LinearLayout> 

Я хочу установить строки tv_mPosX/Y в соответствии с коэффициентом масштабирования (mScaleFactor), которое вычисляется по мнению:

public class PanZoomView extends View { 
    protected Drawable mSampleImage; 
    protected Context mContext; 
    protected float mPosX; 
    protected float mPosY; 
    // 
    public float mScaleFactor = 1.f; 
... 

Где/Как я могу справиться с этим?

Спасибо всем, Риккардо

ответ

0

mScaleFactor Ok ребята, я нашел решение.

1) Я реализовал в представлении объекта поглотитель

2) Это моя последняя активность, с Thread, который обновляет пользовательский интерфейс

public class MainActivity extends Activity { 
    private Handler frame = new Handler(); 
    private static final int FRAME_RATE = 40; // 1000ms/40ms = 25 frames per second 
    private PanZoomView w; 
    private TextView t; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     w = (PanZoomView) findViewById(R.id.zoomview); 
     t = (TextView) findViewById(R.id.tv_mPosX); 
     frame.post(frameUpdate); 
    } 

    private Runnable frameUpdate = new Runnable() { 
     @Override 
     public void run() { 
      t.setText("mScaleFactor =" + w.get_mScaleFactor()); 
      frame.postDelayed(frameUpdate, FRAME_RATE); 
     } 
}; 

}

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