Вращение ImageView и его фон без урожая

Я много искал, но я не могу решить проблему. Я не могу использовать android:rotation как я хочу, чтобы это приложение было совместимо с Android API под версией 11. Моя проблема в чем-то похожа: Rotating view на Android

Я сделал это:

 @Override public void draw(Canvas canvas) { canvas.save(); Drawable d = getDrawable(); canvas.rotate(-10, d.getIntrinsicWidth() / 2, d.getIntrinsicHeight() / 2); super.draw(canvas); canvas.restore(); } 

ImageView является частью RelativeLayout, где я помещаю изображение и некоторый текст.

Но изображение обрезается по краям. Как я могу избежать этого?

Вам просто нужно добавить:

 android:clipChildren="false" 

К родительской ViewGroup .

Например:

 <?xml version="1.0" encoding="utf-8"?> <FrameLayout android:layout_width="300dp" android:layout_height="300dp" android:clipChildren="false"> <com.yourcompany.views.RotateImageView android:layout_width="100dp" android:layout_height="100dp" android:background="@android:color/white" android:src="@drawable/ic_launcher" /> </FrameLayout> 

RotateImageView:

 public class RotateImageView extends ImageView { @Override public void draw(Canvas canvas) { canvas.save(); int height = canvas.getHeight(); int width = canvas.getWidth(); canvas.rotate(45, height / 2, width / 2); super.draw(canvas); canvas.restore(); } } 

Это обеспечивает чистое решение до уровня API 11

Попробуйте добавить ImageView в качестве дочернего представления FrameLayout и установить ширину и высоту FrameLayouts так же, как и для ImageView. Посмотрите мой аналогичный ответ здесь . Оригинальный ответ передан из сообщения Павла Вязовского. Надеюсь это поможет!

Intereting Posts
Как обрабатывать событие click в RecyclerView.ItemDecoration? Дать теги элементов списка без пользовательского массива GCM BroadcastReceiver setResultCode использовать ProgressBar.setProgressDrawable не работает для Android 2.3 В Android, как я могу запросить MediaStore только для файлов по определенному пути? Или, альтернативно, только отображение файлов по определенному пути? Поддержка couchbase lite с другим сервером Android: нарисовать фигуру с перекосом Повторно использовать предыдущие действия? Java.io.IOException: HTTP-запрос не удался, статус HTTP: 500 (ksoap2) ViewPager с фрагментами – onPause (), onResume ()? IllegalArgumentException: не обнаружено никакого поиска для id для фрагмента при быстром переключении вкладок ActionBar Как RelativeLayout Align Center android Android AlarmManager setExact () не является точным Gradle maven зависимость не найдена, если плагин является андроидной библиотекой Какую компоновку я должен использовать (эквивалент css inline-block)