Android: рисование на холсте видов не работает - PullRequest
2 голосов
/ 31 августа 2011

Я пытаюсь нарисовать фигуру на холсте под всеми кнопками.Вот код:

Paint paint = new Paint();
paint.setColor(R.color.Kolor);

View view; 
LayoutInflater inflater = (LayoutInflater)
getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
view = inflater.inflate(R.layout.menu_glowne, null);

Canvas can = new Canvas(Bitmap.createBitmap(300, 300, Bitmap.Config.ARGB_8888));
can.drawRect(0, 0, 200, 200, paint);

setContentView(view);

view.draw(can);

Не знаю, почему я все еще получаю макет без чего-либо нарисованного снизу.Есть идеи о том, что я делаю не так?

Спасибо заранее!

Ответы [ 2 ]

0 голосов
/ 31 августа 2011

В вашем примере вы рисуете вид на холсте, а не на холсте вида.Вы должны использовать простой подход, не раздувать макет, а загружать его нормально, затем найти корневой контейнер и установить его фон.Примерно так:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    Paint paint = new Paint();
    paint.setColor(Color.MAGENTA);
    Bitmap bgr = Bitmap.createBitmap(480, 800, Bitmap.Config.ARGB_8888); 
    Canvas can = new Canvas(bgr);  
    can.drawRect(50, 50, 200, 200, paint);  
    LinearLayout ll = (LinearLayout) findViewById(R.id.ll); 
    ll.setBackgroundDrawable(new BitmapDrawable(bgr));    

}

основной макет:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" 
    android:id="@+id/ll">
<TextView  
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/hello"
    />
</LinearLayout>
0 голосов
/ 31 августа 2011

Вы не рисуете этот путь в Android.Все происходит через метод override (onDraw).Следуйте этому руководству, чтобы начать: http://www.helloandroid.com/tutorials/how-use-canvas-your-android-apps-part-1

С уважением, Стефан

...