首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Android 不規則多邊形 ImageView 佈局:自定義 View 繪製與觸控矩陣

     編輯:程式設計綜合問答

難點

三個不規則區域需承載圖片、支持多點觸控縮放移動,標準 `ImageView` 矩形邊界無法滿足。

方案:自定義 View + Canvas 繪製

  1. 繼承 `View`,`onDraw(Canvas)` 中用 `Path` 定義多邊形裁剪區:
    `canvas.clipPath(polygonPath);` 然後 `canvas.drawBitmap(bitmap, matrix, paint);`
  2. 觸控事件 (`onTouchEvent`) 更新 `Matrix` (平移/縮放/旋轉),`invalidate()` 重繪。
  3. 點擊檢測:`polygonPath.contains(x, y)` 判斷落在哪個區域。

關鍵代碼片段

@Override protected void onDraw(Canvas canvas) {
    for (Zone z : zones) {
        canvas.save();
        canvas.clipPath(z.path);
        canvas.drawBitmap(z.bitmap, z.matrix, paint);
        canvas.restore();
    }
}

現成庫

ShapeImageView 支持任意形狀圖片裁剪,可作為參考或直接使用。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved