установить размер холста - Android - PullRequest
0 голосов
/ 27 декабря 2011

Я хочу сохранить тот же размер растрового изображения для холста, потому что когда я добавляю настраиваемое представление в LinearLayout, отображается холст с другим размером, и я хочу установить размер холста как растровый объект.

Часть кода:

public class TESTActivity extends Activity {    

    @Override
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        LinearLayout l = new LinearLayout(this);
        l.setOrientation(1);
        Button b1 = new Button(this);
        Button b2 = new Button(this);
        View mV = new MyView(this);        
        l.addView(b1);
        l.addView(b2);
        l.addView(mV);       
        setContentView(l);

    }


    public class MyView extends View {


        public MyView(Context c) {
            super(c);
            mBitmap = Bitmap.createBitmap(480, 300, Bitmap.Config.ARGB_8888);
            mCanvas = new Canvas(mBitmap);
            ...
        }
        ...
    }
}

Ответы [ 2 ]

0 голосов
/ 23 июля 2014

Если вы хотите рисовать на холсте с вашими пользовательскими высотой и шириной, вы должны вызвать setContentView (android.view.View yourView, android.view.Viewgroup.LayoutParam yourLayout) в вашем классе деятельности. Потому что по умолчанию setContentView (View view) метод использует полную ширину и высоту. Так что вы должны использовать его перегруженный метод с двумя параметрами вместе с вашим желаемым. См. Документацию для получения дополнительной информации. И не используйте только конструктор LayoutParams () для создания своего объекта. Используйте его, написав полный путь, например android.view.ViewGroup.LayoutParams . Поскольку в Android SDK есть некоторые другие классы с таким же именем. Если вы используете только LayoutParams, Eclipse может не найти правильный класс, поэтому используйте полный путь.

MyView customView;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    customView = new MyView(getApplicationContext());
    android.view.ViewGroup.LayoutParams lp = new android.view.ViewGroup.LayoutParams(100,200);//100 is width and 200 is height
    setContentView(customView, lp);
    customView.setOnClickListener(this);

}`  
0 голосов
/ 27 декабря 2011

Класс Canvas содержит вызовы "draw". Canvas(Bitmap bitmap) Создайте холст с указанным растровым изображением для рисования. холст примет размер нарисованного объекта. поэтому, установив размер растрового изображения, вы можете установить размер холста.

...