Сглаживание преобразуемого представления

#android #transform #antialiasing

#Android #преобразование #сглаживание

Вопрос:

Я преобразую дочерние представления в своей viewgroup, когда я просматриваю viewgroup (своего рода эффект обложки). Я использую matrix.setPolyToPoly для преобразования. Представления имеют границы, которые нуждаются в серьезном сглаживании.

До сих пор я пытался использовать

 canvas.setDrawFilter(new PaintFlagsDrawFilter(0, Paint.ANTI_ALIAS_FLAG));
  

у моих детей onDraw , но, похоже, это ничего не меняет. Кроме того, я знаю BitmapDrawable.setAntiAlias(true) , но мои дочерние элементы — это не чертежи, а полноценные группы просмотра с представлениями внутри, поэтому я не могу это использовать.

Ответ №1:

Переопределение

     protected void dispatchDraw(Canvas canvas)
  

в вашем пользовательском макете и установите там фильтр.

     canvas.setDrawFilter(new PaintFlagsDrawFilter(1, Paint.ANTI_ALIAS_FLAG));
    super.dispatchDraw(canvas);
  

Я столкнулся с аналогичной проблемой в моей галерее, вдохновленной cover flow. Это решило мою проблему.