在原來的專案裡有表盤指標旋轉的需求,做出來的效果被我查出乙個小小bug:
先貼**:
12 34 5
6 78 9
1011
1213
1415
1617
1819
2021
public他的做法是void
setrotate
(float
degrees
)stick
.setimagebitmap(ns
);rotateanimationra=
animfactory
.createrotateanimation
(-degrees
-146,0
,animation
.relative_to_self
,0.5f
,animation
.relative_to_self
,0.5f
,1500
);ra
.setinterpolator
(new
acceleratedecelerateinterpolator
());
stick
.startanimation(ra
);}
一、s = bitmapfactory.decoderesource(this.getresources(), r.drawable.watch_stick_blue);
二、設matrix matrix = new matrix(); matrix可設scale translate rotate等屬性
三、bitmap ns = bitmap.createbitmap(s, 0, 0, s.getwidth(), s.getheight(), matrix, true);
這種做法可以實現旋轉,但是我發現這種做法會使影象大小變化,
可以看出90度的時候的指標明顯比45度的時候長,而在我去掉**中matrix對scale的縮放以及在xml裡對布局的控制之後
截圖如下:
可以看出,此時指標長度相等,但是45度時候的比原變大了,究其原因,是因為createbitmap(bitmap source, int x, int y, int width, int height, matrix m, boolean filter)是先將source原始檔按引數width和height從座標x、y處擷取,然後根據matrix進行轉換,這樣就可以理解,無論是在matrix裡進行了縮放還是在xml裡對圖的大小進行控制,旋轉後的新圖中的指標會和原來的指標大小不同
所以目前來說我想到的辦法是,**鑑於專案中的指標為正方形**,對第一次createbitmap做出的圖s2再進行一次擷取,判斷後根據s1和s2較小的邊最為最新截圖的邊,以保證圖形大小相仿。
**如下:
12 34 5
6 78 9
1011
1213
1415
1617
1819
2021
2223
2425
2627
2829
3031
3233
3435
3637
3839
4041
4243
public還不成熟,歡迎指正~void
setrotate
(float
degrees
,boolean
isccurrentlefttab
,int
index
)matrix
matrix2
=new
matrix
();bitmap
nns;if(
ns.getwidth
()>s.
getwidth
()&&ns.
getheight
()>s.
getheight
())elseif(
ns.getwidth
()>s.
getwidth
()&&ns.
getheight
()<=s.
getheight
())elseif(
ns.getwidth
()<=s.
getwidth
()&&ns.
getheight
()>s.
getheight
())else
stick
.setimagebitmap
(nns
);stick
.setbackgroundcolor
(color
.cyan
);}
Bitmap和Canvas的平移 縮放 旋轉
matrix matrix new matrix matrix.posttranslate tx,ty matrix.postscale scale,scale canvas.drawbitmap bmp,matrix,null 畫布不動,bmp先平移後縮放,均是相對於原始座標 等價 matrix ...
關於使用BitMap的小結
建立bitmap bitmap bm null bm bitmap.createbitmap w,h,config.alpha 8 每個畫素佔乙個位元組 8位 bm bitmap.createbitmap w,h,config.argb 4444 兩個位元組 bm bitmap.createbitm...
關於Bitmap壓縮快取的問題
本人剛入門新手一枚。今天在練習bitmap記憶體快取和本地快取。使用到bitmapfactory.options 的時候遇到了一點問題,在options設定之後無法獲取到bitmap。如下 private bitmap downloadbitmap string imageurl catch exc...