Я довольно много нового в программировании для Android. Мое приложение - пример приложения из api demos на веб-сайте разработчика. Когда я изменяю параметры в этом образце, он становится больше. Этот чертеж должен отображаться в виде прокрутки (его не нужно сжимать, чтобы он соответствовал экрану). Это код, который я использовал:Android: рисование на холсте в Scrollview
DrawPoints.java
public class DrawPoints extends myActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.routes);
}
public static class SampleView extends View {
private Paint mPaint = new Paint();
private float[] mPts;
/*here comes declaration of parametars
private void buildPoints() {
/*here comes some coding*/
}
}
public SampleView(Context context, AttributeSet attributeset) {
super(context, attributeSet);
buildPoints();
}
@Override
protected void onDraw(Canvas canvas) {
Paint paint = mPaint;
//here also comes code
}
}
}
здесь XML код:
routes.xml
<?xml version="1.0" encoding="utf-8"?>
<ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/scrollView1"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<HorizontalScrollView
android:id="@+id/scrollView2"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<!-- This code is just to make sure that scroll views work how
I want them to work, image size is 625*351 px
<ImageView
android:id="@+id/image_View1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:src="@drawable/bus_design"
/> -->
<my.package.DrawPoints.SampleView
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
</HorizontalScrollView>
</ScrollView>
Когда я запускаю это приложение и нажмите кнопку в случае сбоя приложения основной активности. Drawing выглядит Figure1, когда я не использую макет XML или scrollviews:
http://i.stack.imgur.com/za5MP.png Figure1
Я также попытался использовать этот код после метода setContentView:
View v = new SampleView(this);
addContentView(v, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT,
ViewGroup.LayoutParams.FILL_PARENT));
, а также это один:
View v = new SampleView(this);
ScrollView.LayoutParams lp = new ScrollView.LayoutParams(1000, 1000);
addContentView(v, lp);
Когда я пользуюсь co des, показанный выше, приложение отображает Figure1 без scrollview, похоже, что второй контентный вид перезаписывает этот xml, но он не отображается правильно. После этого я попытался использовать этот код после setContentView:
View v = new SampleView(this);
FrameLayout fl = new FrameLayout(this);
fl.findViewById(R.id.FrameLayout1);
fl.addView(v);
рамки макета (FrameLayout1) добавляется в routes.xml файл после горизонтальной прокрутки зрения. Когда приложение запускается, я получаю пустой экран без рисунка 1. Есть ли у кого-нибудь идеи, как обновить мой код, который отобразит Рисунок 1 в ScrollView?
Заранее благодарен!
Привет всем, никто не отвечал никакого ответа на мой вопрос, так что я искал какие-то решения. Я обнаружил, что в android не реализована двунаправленная прокрутка Я нашел действительно хорошую реализацию двунаправленной прокрутки на этой веб-странице [ссылка] http://stackoverflow.com/questions/2044775/scrollview-vertical-and-horizontal-in- android решение было опубликовано Mahdi Hijazi. Решение работает как шарм, но когда я пытаюсь реализовать свой класс SampleView на его решении, ничего не происходит. Если у меня получится какое-то решение, я опубликую это решение. До тех пор надеемся, что у кого-то есть решение. – Kristijan