android畫點
㈠ android 在指定為位置上畫圓點
幹嘛要畫點?
㈡ android中用ImageView插入了一副圖片,如何在它上面畫某個已知坐標的點呢
是不是要在ImageView上面畫沖罩圖?如果是的話,你可以先處理圖片,再顯示圖做扮,或者把圖設置成背景,純判灶然後用canvas來畫。
㈢ android開發在ImageView控制項上繪制點的問題
寫一個睜哪繼承自ImageView的類 ,春兄重寫其OnTouch()和OnDraw()類,前一個獲取觸空點扒早襲,後一個畫出在這個點 。
㈣ Android手機如果在你點擊之處顯示小圓點
以華為手機為例
第一步,點開設置。
第二步,點開系統。
第三步,點開關於手機。
第四步,快速點擊版本號5次,可能會讓你輸入鎖屏密碼。輸入密碼後,會提示你:您已進入開發者模式。
第五步,返回到系統頁面。點開開發人員選項。
第六步,滑動屏幕,找到輸入,把顯示觸摸操作打開。
這樣子就成功開啟了。當你點擊或滑動時,就會有一個白色小加點在你的手指位置顯示。
我手中的另一個Android手機是這樣子開啟的:設置-->關於本機-->點5次版本號-->返回上一頁-->高級設置-->開發者選項-->打開顯示觸摸操作的開關。
前面說了一堆沒有什麼用的操作。其實呢,開發人員選項里可以做很多比較有用的設置。比如可以對應用進行限制。當選擇不保留活動時,離開應用後,應用就銷毀了,這樣子就不需要自己手動去清理運行內存了。還可以對後台進程進行限制,後台進程少耗電也就會少了。這兩種設置,是六親不認的殺掉運行中的app,所以當你用了之後有些app的消息可能就不能及時收到了。
前面一堆廢話是為了廢話而廢話。後面一段是為了補字數。這一段是在畫蛇添足。
㈤ 我想實現 在android中根據坐標(x,y)在地圖上畫點的功能,應該怎麼實現呢
參考網路地圖API
http://dev..com/wiki/imap/index.php?title=Android%E5%B9%B3%E5%8F%B0/%E5%BC%80%E5%8F%91%E6%8C%87%E5%8D%97
㈥ android在imageview上畫一個點
1、Fragment 添加正穗一層 點擊設置可見與否飢伏
2、也可以設置2張圖片 點擊做切換 實爛清攜現效果
㈦ 如何在Android上使用OpenGL ES 2.0繪制點
OpenGLES是一個讓人崩潰的東西。在Andorid手機上做3D還就得用它。把我記的一些筆記分享在這里吧:AndroidOpenGLES簡介20011-6-3Android系統使用OpenGL的標准介面來支持3D圖形功能,android3D圖形系統也分為java框架和本地代碼兩部分。本地代碼主要實現的OpenGL介面的庫,在Java框架層,javax.microedition.khronos.opengles是java標準的OpenGL包,android.opengl包提供了OpenGL系統和AndroidGUI系統之間的聯系。Android的本地代碼位於frameworks/base/opengl下,JNI代碼位於frameworks/base/core/com_google_android_gles_jni_GLImpl.cpp和frameworks/base/core/com_google_android_gles_jni_EGLImpl.cpp,java類位於opengl/java/javax/microedition/khronos下本地測試代碼位於frameworks/base/opengl/tests。包括angeles、fillrate等14個測試代碼,這些代碼都可以通過終端進行本地調用測試(模擬器中使用adbshell)。OpenGLES1.x固定管線操作,支持glVertexPointer()等函數,不支持GLSL。頭文件在ndk的GLES目錄下,庫文件是libGLESv1_CM.so。OpenGLES2.x可編程管線操作,不兼容1.x,不支持固定管線操作,例如glVertexPointer()等函數。支持GLSL(還必須用這個來編程)。頭文件在ndk的GLES2目錄下,庫文件是libGLESv2.so。OpenGLES學習2011-6-30OpenGL定義了自己的數據類型。應該堅持使用這些OpenGL的數據類型,從而保證可移植性和效率。OpenGLES目前不支持64位數據類型。OpenGLES只支持三邊形。OpenGLES只支持gl開頭的函數,glu庫都不支持。OpenGLES從OpenGL中刪除的功能:1.glBegin/glEnd2.glArrayElement3.顯示列表4.求值器5.索引色模式6.自定義裁剪平面7.glRect8.圖像處理(這個一般顯卡也沒有,FireGL/Quadro顯卡有)9.反饋緩沖10.選擇緩沖11.累積緩沖12.邊界標志13.glPolygonMode14.GL_QUADS,GL_QUAD_STRIP,GL_POLYGON15.glPushAttrib,glPopAttrib,glPushClientAttrib,glPopClientAttrib16.TEXTURE_1D、TEXTURE_3D、TEXTURE_RECT、TEXTURE_CUBE_MAP17.GL_COMBINE18.自動紋理坐標生成19.紋理邊界20.GL_CLAMP、GL_CLAMP_TO_BORDER21.消失紋理代表22.紋理LOD限定23.紋理偏好限定24.紋理自動壓縮、解壓縮25.glDrawPixels,glPixelTransfer,glPixelZoom26.glReadBuffer,glDrawBuffer,glCopyPixelsOpenGLES2.02011-10-92.0和1.1不兼容。-2.0使用的頭文件是ndk的include目錄下的GLES2目錄,有gl2.h,gl2ext.h,gl2platform.h,而1.1使用的是GLES目錄。-2.0使用的庫文件是ndk的lib目錄下的libGLESv2.so,而1.1使用的是libGLESv1_CM.so。-2.0中取消了很多1.1函數,例如glMatrixModel和glLoadIdentity等。OpenGL著色語言(GLSL――OpenGLShadingLanguage)-使用2.0,必須學此語言。因為很多1.1的函數都被取消了。san-angelesNDKOpenGLES1.1的例子程序2012-3-8SanAngeles,查維基網路,是一個虛構的未來概念城市,位於南加州。常在電影中出現,來源自LosAngeles和SanDiego.該程序的演示效果是,觀察一個宏偉的城市,地面是鏡面有建築倒影,城市中有飛船飛過。前後有5、6個觀察點,而且鏡頭在每個觀察點不停的移動。這個例子,用NDK(C++)調用OpenGLES1.1來繪制了SanAngeles這個城市。基本上全部使用了NDK,Java程序只有1個。用vc2005演示一下,目的通過跟蹤代碼了解一些細節。方法是:-將jni下所有的.h文件,以及demo.c,app-win32.c復制出來,放在一個專門的目錄下,然後改造成用OpenGL的而不是ES的。(或者乾脆刪除大段的繪制代碼,保證編譯通過)首先分析Java代碼-DemoActivity.java,這是唯一的Java文件,它主要需要下列4個jni的介面:-();//初始化-(intw,inth);-();//繪制1幀-();其次分析C++代碼app-android.c-首先,調用了importGLInit(),動態導入OpenGL的庫。-其次,調用了appInit(),在內存中建立了平台無關的3D對象集合。建立方法是用一個數組,用類似畫圓拔高的方式產生諸多三角形。-然後,在每個時鍾周期中調用appRender(),細節是:-prepareFrame(width,height);//准備OpenGLES繪制框架。其實就是清空顏色和深度緩沖,重置投影和模型矩陣。-camTrack();//算好在當前時鍾周期,鏡頭的位置、朝向及焦距等。然後調用gluLookAt來實現。-configureLightAndMaterial();//設置光源和材質-drawModels(-1);//先繪制倒影(其實就是將所有模型z軸倒過來畫)-第一個循環,是畫精緻的物體-第二個循環,是畫運動的物體-drawGroundPlane();//再繪制鏡子一般的地面。在繪制前取消光照,打開混合,然後繪制。繪制後還原狀態。-drawModels(1);//再繪制所有模型-drawFadeQuad();//最後繪制淡出框,用融合的方式畫一個遮住整個視口的2D框,融合系數和時間相關。
㈧ 在Android Studio中畫點9圖
在實際項目中經常會遇到在某些手機上特別是大屏幕手機上出現毛邊,邊界看起來模糊不清的情況。這是因為界面上的圖形會因為長寬的變化而產生拉伸,造成圖形的失真變形。
這種情況下,我們可以UI設計師多切出幾套解析度的圖偶來適配,但是這樣會導致apk體積增加,有沒有一張圖就能解決的好辦法呢,android平台下的點9PNG就應運而生了。點9圖可以將圖片橫向和縱向同時進行拉察銀芹伸,以實現在多解析度下的完美顯示效果。
首先看一下普通圖片和點9圖片的區別
布局文件如下
實際顯示效果圖
圖中可以看出經過我處理的圖片,邊角變得不模糊了,雖然不是那麼很好看,但這里只是做個例子來說明其作用。
下面來講講在android studio中怎麼去根據自己實際需求去畫這個點9圖
先找到圖片右鍵敗畢
然後修改圖片名稱,選擇目錄,注意必須要放在drawable目錄裡面,不然引用studio會報錯
然後進入點9圖編輯界面
最後講解怎麼編輯點9圖
只需要在圖片邊緣滑鼠單擊即可,一般我們只需要設置左邊和上邊來調節拉伸區域。
變成黑色表示拉伸的坐標點。圖中粉紅色的交叉點原本是白色,故而拉伸的區域都在白色點區域。
所以當拉伸時大家就看到了谷歌機器人的外部四個綠色邊角區域沒有了毛邊,實際就是保持其不被拉伸而形成的結果。
L1與T1交叉區域,L2與T2交叉區域,表圖片在拉伸的時候只會拉伸所以示只拉伸該區域。
至於右邊下邊 要搏戚是邊框是透明色區域則表示這塊區域占據空間不被別的內容遮擋,
黑色區域表示可以顯示別的內容的區域,比如一個textview放這張圖片做背景,如果下面左邊一半設置透明色,右邊一半設置黑色,那麼最後文字只會在黑色區域。
如下圖
以上就是點9圖的部分介紹。
㈨ android 白板怎麼去判斷是畫點 還是畫線
獲取按下的坐標,和放開的坐標,兩個坐標之間如果相差很多,就不是畫點
㈩ 如何在Android上使用OpenGL ES 2.0繪制點
如何在Android使用OpenGL
ES
2.0繪制點,看上去並不是一個復雜的問題,但是上網一搜,滿眼都是繪制點的代碼。
如果你看到類似如下代碼,基本上你已經掉坑裡了。
···
c
glBeging();
...
glDrawPoint(...);
...
glEnd();
```
如上是使用OpenGL
ES
1.0繪制點的代碼。因為架構不同,在OPENGL
ES
2.0的世界裡,這一套已經徹底不管用了。
在OpenGL
ES
2.0里繪制點,要使用Shader,使用Shader,用Shader。。。。。。
具體怎麼繪制呢,首先你要搞清楚,如何用Shader繪制一個普通帶顏色的三角形。我這里假設你已經會了。
三角形顯示出來的那一刻,你一定會有這樣的代碼:
GLES20.glDrawArrays(GLES20.GL_TRIANGLES,
0,
vertexCount);
那麼,只顯示三角形的三個頂點該怎麼辦,說來簡單,這行代碼改成
GLES20.glDrawArrays(GLES20.GL_POINTS,
0,
vertexCount);
即可。
但是,理想和現實的差距總是很大,改完後三角形消失了但是頂點沒有出現。正常OpenGL
2.0環境下應該怎麼做呢?
1)首先調用
GL20.glEnable(GL_VERTEX_PROGRAM_POINT_SIZE);
這樣在Shader中可以訪問glPointSize;
2)然後類似准備每個頂點色彩那樣准備頂點的大小的數值,三角形是三個頂點,就准備3個float。把頂點數據像色彩數據那樣,綁定到VOB,再綁定到Shader的參數中。基本上就是照準備色彩那樣准備頂點大小數據,不同之處在於每個色彩4個float,每個頂點尺寸1個float。
3)最後,把你的頂點Shader文件改好,增加頂點大小的輸入參數和gl_PointSize賦值。
4)另外,如果你打算顯示圓形頂點,而不是方形的,還要用GL20.glEnable()函數設置其他參數,具體可查OpenGL官網。
比如:
uniform
mat4
matrix;
attribute
vec4
aVertex;
attribute
vec4
aColor;
attribute
float
aPointSize;
varying
vec4
vColor;
void
main(){
vColor
=
aColor;
gl_Position
=
matrix
*
aVertex;
gl_PointSize
=
aPointSize;
}
這樣,基本上就搞定了。
現在,坑爹的問題來了,在Android上你找不到GLES20.GL_VERTEX_PROGRAM_POINT_SIZE的常量,谷歌似乎認為在手機的3D環境下繪制點沒多大必要性,所以並沒有加上這個參數,好在預設情況下,模擬器中Shader中的gl_PointSize是打開的(Android
4.4.x)。所以你可以跳過第一步,直接傳遞點大小的參數,並把Shader改好就成。
那麼,為什麼你不寫gl_PointSize
=
aPointSize,點就顯示不出來呢。我估計預設情況下,gl_PointSize
=
0.0f,所以顯示不出來。
如果你顯示點的大小總是固定不變的,你甚至可以把傳遞頂點大小數值的步驟也省略掉,直接在Shader中寫上gl_PointSize
=
10.0f;即可。
閱讀本文,當你打算在Android上用OPENGL
ES
2.0顯示點時,即可跳過谷歌的那些坑了。我想,手機GPU硬體廠商的開發包應該對OpenGL
ES
2.0支持的更好些,比如高通的AdrenoSDK,建議大家下載嘗試。