Я мог бы использовать некоторую помощь, пытаясь выяснить, как масштабировать холст, чтобы он соответствовал пользовательскому виду в действии.В настоящее время рисунки на холсте нарисованы так, чтобы соответствовать размеру экрана для любого устройства, на котором запускается приложение (т.е. оно рисуется посередине), например, так:
Однако при просмотре в пользовательском представлении в упражнении изображение обрезается из-за того, что размер настраиваемого представления в упражнении меньше размера экрана, например:
Желаемый результат - масштабировать рисунок холста, чтобы он соответствовал пользовательскому виду в упражнении (например, он показывает первое изображение), ниже приведен мой код:
Класс, который рисует холст:
public class DrawGraphTest extends View {
int mWidth = this.getResources().getDisplayMetrics().widthPixels;
int mHeight = this.getResources().getDisplayMetrics().heightPixels;
public DrawGraphTest(Context context) {
super(context);
init();
}
public DrawGraphTest(final Context context, final AttributeSet attrs) {
super(context, attrs);
init();
}
private void init() {
//Various paints and such...
//Set point to middle of screen for drawings
point1 = new Point(mWidth / 2, mHeight / 2);
}
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
//Draw various stuff to canvas
}
}
Класс активности:
public class GraphActivity extends AppCompatActivity {
DrawGraphTest drawGraphTest;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_graph);
drawGraphTest = (DrawGraphTest)findViewById(R.id.drawGraphTest);
}
}
XML:
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".GraphActivity">
<g.myPackage.DrawGraphTest
android:id="@+id/drawGraphTest"
android:layout_width="350dp"
android:layout_height="300dp"
android:layout_marginStart="8dp"
android:layout_marginLeft="8dp"
android:layout_marginTop="8dp"
android:layout_marginEnd="8dp"
android:layout_marginRight="8dp"
android:layout_marginBottom="8dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.041" />
</android.support.constraint.ConstraintLayout>
Яновичок в Android Studio и действительно может использовать некоторую помощь, ура!