本文目錄一覽:
java JPanel重疊覆蓋問題。
首先遺憾的告訴你,add方法添加以後,本來就是覆蓋式的,不存在透明化的問題,因為父panel會挨次調用子類的panel的paint方法,將其繪製在自己表面。也就是說,你想通過add,然後設置子面板透明的方法本身是行不通的。
但這並不意味着就沒有辦法了,很簡單,你自己管理繪製就可以了。方法有兩種:
1、自己修改一個panel類,繼承自JPanel,這個類在paint方法中,先繪製本身的圖像,然後才繪製子類的圖像,並且會根據子類的圖像區域進行透明處理。
2、在一個類中,自己通過內部數據處理,把兩個panel的數據進行排比,然後統一畫在panel中。
PS:通常用的都是第二種辦法。第一種辦法實現起來,即不靈活,也不如第二種方法直觀快速。
java數組怎麼進行疊加????
數組是不可以這樣的,因為數組的大小一旦確定了就不可以改了,還是用集合框架的那些類吧,作為面向對象的實現方式,List,Map,Set等比數組實在是好太多了。
將圖層混合模式設置為疊加在哪裡
在圖層-設置圖層的混合模式裏面。設置疊加方法如下:
1、首先在ps裏面將需要的素材打開。
2、打開之後在右側新建一個圖層。
3、新建了圖層之後,選中這個圖層,並按住shift+F5組合鍵,給圖層添加顏色。
4、然後點擊圖層-設置圖層混合模式-疊加這個選項。
5、點擊了之後,就可以看到圖層的疊加效果了。
java開發 怎麼把圖層放到百度地圖上
如果要在百度地圖上實現一張自己自定義的地圖,就需要使用百度地圖自定義圖層接口。實現效果如下:
但是百度地圖中關於自定義圖層的介紹甚少,便以此博文以記錄,方便同行了解和使用。
百度地圖官方文檔中,關於自定義圖層的介紹是這樣的:
=========華麗麗的分隔線===========
自定義圖層
地圖坐標系
在使用自定義圖層前,您需要了解百度地圖的地圖坐標系,百度地圖坐標系涉及:
經緯度球面坐標系統
墨卡托平面坐標系統
圖塊編號系統
經緯度是一種利用三維空間的球面來定義地球上的空間的球面坐標系,它能夠標示地球上任何一個位置。通過倫敦格林尼治天文台原址的經線為0度經線,從0度經線向東、向西各分180度。赤道為0度緯線,赤道以北的緯線稱為北緯、以南的稱為南緯。在百度地圖中,東經和北緯用正數表示,西經和南緯用負數表示。例如北京的位置大約是北緯39.9度,東經116.4度,那麼用數值標示就是經度116.6,緯度39.9。
在百度地圖中,習慣經度在前,緯度在後,例如:
var point = new BMap.Point(116.404, 39.915); // 創建點坐標,經度在前,緯度在後
由於百度地圖是顯示在平面上的,因此在地圖內部系統中需要將球面坐標轉換為平面坐標,這個轉換過程稱為投影。百度地圖使用的是墨卡托投影。墨卡托平面坐標如下圖所示,平面坐標與經緯度坐標系的原點是重合的。
百度地圖在每一個級別將整個地圖劃分成若干個圖塊,通過編號系統將整個圖塊整合在一起以便顯示完整的地圖。當地圖被拖動或者級別發生變化時,地圖API將會根據平面坐標計算出當前視野內所需顯示的圖塊的編號。百度地圖圖塊編號規則如下圖所示:
從平面坐標原點開始的右上方向的圖塊編號為0,0,以此類推。在最低的縮放級別(級別 1)中,整個地球由 4 張圖塊組成。隨着級別的增長,地圖所使用的圖塊個數也隨之增多。
定義取圖規則
通過TileLayer類開發者可以實現自定義圖層。其中,TileLayer實例的getTilesUrl方法需要實現,用來告訴API取圖規則。getTilesUrl方法的參數包括tileCoord和zoom,其中tileCoord為圖塊的編號信息,zoom為圖塊的級別,每當地圖需要顯示特定級別的特定位置的圖塊時就會自動調用此方法,並提供這兩個參數。使用者需要告知API特定編號和級別所對應的圖塊的地址,這樣API就能正常顯示自定義的圖層了。
添加和移除自定義圖層
以下代碼在每個圖塊的所有縮放級別上顯示一個簡單的透明疊加層,使用浮動紅色小水滴表示圖塊的輪廓。
var map = new BMap.Map(“l-map”); // 創建地圖實例
var point = new BMap.Point(116.404, 39.915); // 創建點坐標
map.centerAndZoom(point,15); // 初始化地圖,設置中心點坐標和地圖級別
var tilelayer = new BMap.TileLayer(); // 創建地圖層實例
tilelayer.getTilesUrl=function(){ // 設置圖塊路徑
return “layer.gif”;
};
map.addTileLayer(tilelayer); // 將圖層添加到地圖上
=========華麗麗的分隔線============
這裡講得讓人一知半解,最主要的是,文檔中並沒有說明如何實現getTilesUrl方法,以及如何實現將一張自己的地圖分隔成符合百度地圖要求的圖塊。
現在記錄一下我解決這個問題的過程。
首先,我先下載百度地圖瓦格圖片切圖工具:
其次,找到自己的地圖,導入其中進行切片,參考Sup_Heaven轉的博文:
最後將圖片放入項目資源文件中,實現getTitlesUrl方法即可。
這裡需要補充一下的同,Sup_Heaven轉的博文中,並沒有詳細說明中心點和瓦格圖片之間的關係,只告訴我們其然卻不知其所以然。藉助度娘了解。百度地圖的所有瓦格圖片都是256px*256px的正方形圖片,其圖片的位置由經緯度和放大倍數zoom決定,所以在使用工具TileCutter時,設置對的級別範圍和中心點,否則會導致切出的圖片與實際需要不符。如果大家在使用過程有疑問的,歡迎留言交流
原創文章,作者:O3FWU,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/127931.html