1. 如何動態地畫一條虛線在android中使用OpenGL ES 2.0編程
動態繪制虛線,可以參考如下內容:
、被稱為點畫的影響。不幸的是,點畫已經從OpenGL的刪除,但幸運的是,有幾種方法仍然得到的效果。我們必須充分利用的OpenGL的著色語言的這項任務。 頂點著色器:uniform mat4 u_modelViewProjectionMatrix;
uniform mat4 mv;
attribute vec4 a_position;
attribute vec4 a_color;
varying vec4 v_color;
varying vec4 position;
void main() {
gl_Position = u_modelViewProjectionMatrix * a_position;
position = mv * a_position;
v_color = a_color;
}
著色器:precision mediump float;
uniform vec2 sourcePoint;
varying vec4 v_color;
varying vec4 position;
void main() {
if (cos(0.1*abs(distance(sourcePoint.xy, position.xy))) + 0.5 > 0.0) {
gl_FragColor = vec4(0,0,0,0);
} else {
gl_FragColor = v_color;
}
}
我沒有在這里找到本教程中,我測試了,這里是我的結果:
正如羅斯托夫在這個線程解釋,這里最大的部分是sourcePoint。
的關鍵 CodeGo.net,整個事情是sourcePoint被傳遞的
該行的起源。
如果你不喜歡這種方式也存在textures圖案的效果。有與α虛線效果textures,並將其應用到您的線路。
2.
我找到了一個更好的解決方案。它的水平和垂直線。
#define DOT_VERTEX_CODE \
"attribute vec4 a_Position;" \
"uniform mat4 projectionMatrix;" \
"varying vec2 v_xy;" \
"void main() {gl_PointSize = 1.0; gl_Position = a_Position*projectionMatrix; v_xy = a_Position.xy;}"
#define DOT_FRAGMENT_CODE \
"precision mediump float;" \
"varying vec2 v_xy;" \
"uniform float isVert;" \
"uniform vec4 color1;" \
"uniform vec4 color2;" \
"void main() {gl_FragColor = mod(isVert > 0.0 ? v_xy.y : v_xy.x, 2.0) >= 1.0 ? color1 : color2;}"
2. android用shape畫虛線,怎麼也不顯示
android中 shape的用法如下:
注意這個padding屬性,如果你設置了邊框,建議你給控制項設置一下padding
內邊距,這要才能顯示出來
<?xmlversion="1.0"encoding="utf-8"?>
<shapexmlns:android="http://schemas.android.com/apk/res/android">
<!--圓角-->
<corners
android:radius="9dp"
android:topLeftRadius="2dp"
android:topRightRadius="2dp"
android:bottomLeftRadius="2dp"
android:bottomRightRadius="2dp"/><!--設置圓角半徑-->
<!--漸變-->
<gradient
android:startColor="@android:color/white"
android:centerColor="@android:color/black"
android:endColor="@android:color/black"
android:useLevel="true"
android:angle="45"
android:type="radial"
android:centerX="0"
android:centerY="0"
android:gradientRadius="90"/>
<!--間隔-->
<padding
android:left="2dp"
android:top="2dp"
android:right="2dp"
android:bottom="2dp"/><!--各方向的間隔-->
<!--大小-->
<size
android:width="50dp"
android:height="50dp"/><!--寬度和高度-->
<!--填充-->
<solid
android:color="@android:color/white"/><!--填充的顏色-->
<!--描邊-->
<stroke
android:width="2dp"
android:color="@android:color/black"
android:dashWidth="1dp"
android:dashGap="2dp"/>
</shape>
3. android用shape畫虛線,怎麼也不顯示
一直以為android的shape能畫直線,虛線,矩形,圓形等,畫直線也就算了,用一個view設一下高度和顏色,就可以出來一條直線了。所以說這個對我來說經常不用,圓形是可以,看看我應用里的消息提示框都是這樣生成的,好了,這個不存在問題,今天想要做是一條虛線,什麼也不說了,直接上虛線的代碼:<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="line">
<!-- 顯示一條虛線,破折線的寬度為dashWith,破折線之間的空隙的寬度為dashGap,當dashGap=0dp時,為實線 -->
<stroke android:width="1dp" android:color="#D5D5D5"
android:dashWidth="2dp" android:dashGap="3dp" />
<!-- 虛線的高度 -->
<size android:height="2dp" />
</shape>
解釋的好完美,真要不是不自己試,估計一輩子都會相信這是真的了,結果是放到手機里,從來沒有出現過什麼線條,對於像我一樣追求完美的人來說,自然不會放過這一個細節,在網上找了大半天,有的小夥伴們也遇到了,並且也解決了,可是把他們的方法拿過來後,都一個也不好使,實際情況是還是不能顯示,總結一下小夥伴們的解決方法吧
1.從android3.0開始,安卓關閉了硬體加速功能,所以就不能顯示了,所以就是在 AndroidManifest.xml,或者是在activity中把硬體加速的功能關掉就可以了android:hardwareAccelerated="false"或者是view.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
2.一個小夥伴的翻譯,說什麼height要大於dashWidth才能顯示。
我都按他們的方法試了,根本都不行,
所以要想真正的實現還是老老實實的自己去畫一條虛線吧。
4. Android 文字左邊虛線
方式:
###第一種是通過寫shape布局文件來實現給TextView設置background時引用此布局文件即可實現效果,shape布局文件代碼如下:
stroke標簽下為虛線框的主要設置,dashGap表示中間隔開一段距離,即定義了樣式為虛線,效果圖如下:
###第二種方式是通過自定義View使之繼承View,然後在onDraw方法中將虛線和文字用Paint畫筆畫出。
主要代碼如下:
public class DashedSurroundTextView extends View {
/
mTextColor 文字顏色 mBorderColor 虛線邊界顏色 mBorderWidth虛線邊界寬度
mTextSizen 文字大小 mText 文字內容
/
private int mTextColor;
private int mBorderColor;
private float mBorderWidth;
private float mTextSize;
private String mText;
private float start_x = 0;
private float start_y = 0;
private float padding = 5;
private float baseLineLong = 10;
private float radiusX = 20;
private float radiusY = 20;
...
public DashedSurroundTextView(Context context, AttributeSet attrs) {
super(context, attrs);
//獲取自定義參數
TypedArray typedArray = context.obtainStyledAttributes(attrs,
R.styleable.DashedSurroundTextView);
//虛線border顏色
mBorderColor = typedArray.getColor(R.styleable.DashedSurroundTextView_border_color, Color.argb(0, 0, 0, 0));
//虛線border寬度
mBorderWidth = typedArray.getDimension(R.styleable.DashedSurroundTextView_border_width, 0);
//字體顏色
mTextColor = typedArray.getColor(R.styleable.DashedSurroundTextView_textColor, Color.argb(0, 0, 0, 0));
//字體大小
mTextSize = typedArray.getDimension(R.styleable.DashedSurroundTextView_textSize, 0);
//顯示文字
mText = typedArray.getString(R.styleable.DashedSurroundTextView_text);
}
5. Android如何繪制虛線
用shape繪制虛線
真機調試時可能會出現虛線變實線的現象
在manifest文件對應的activity節點中設置
android:hardwareAccelerated="false"
即可
<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="line"> <stroke android:width="1dp" android:color="#d3d3d3" android:dashWidth="10dp" android:dashGap="10dp" /></shape>
width:線段的高度
color:線段的顏色
dashWidth:線段寬度
dashGap:線段之間間隔寬度
6. android用shape畫虛線,怎麼也不顯示
Canvas類用來實現繪制.通過組合使用Canvas類的成員函數可以實現隨心隨欲地繪制圖片的任何部分.
Canvas.clipRect:設置顯示區域
Canvas.drawBitmap:繪制
例子:
Bitmap b=BitmapFactory.decodeStream("圖片編號", null);//讀取圖片
Canvas c = null;//實例Canvas
c.save();//記錄原來的canvas狀態
c.clipRect(100,100,200,300);//顯示從(100,100)到(200,300)的區域(單位:象素)
c.drawBitmap(b,10,0,null); //將閹割過的圖片畫到(10,0)位置
c.restore();//恢復canvas狀態
7. android用shape畫虛線,怎麼也不顯示
您好,很高興能幫助您
Canvas類用來實現繪制.通過組合使用Canvas類的成員函數可以實現隨心隨欲地繪制圖片的任何部分.
Canvas.clipRect:設置顯示區域
Canvas.drawBitmap:繪制
例子:
Bitmap b=BitmapFactory.decodeStream("圖片編號", null);//讀取圖片
...
Canvas c = null;//實例Canvas
c.save();//記錄原來的canvas狀態
c.clipRect(100,100,200,300);//顯示從(100,100)到(200,300)的區域(單位:象素)
c.drawBitmap(b,10,0,null); //將閹割過的圖片畫到(10,0)位置
c.restore();//恢復canvas狀態
你的採納是我前進的動力,
記得好評和採納,答題不易,互相幫助,
8. Android中繪制虛線
下面對屬性進行一下介紹:
9. android opengl怎麼畫虛線
在OpenGL中畫線是可以完全的控制,比如畫虛線,用函數glLineStipple就可以控制畫線的模式:
函數glLineStipple有兩個參數,第一個是重復的次數,第二個是用一個16-bit的數來控制,0表示不畫,1表示畫;比如0000111100001111=0x0F0F表示「 — —」這個模式。
glLineWidth (1.0);
glLineStipple (1, 0x0F0F);
glBegin(GL_LINES);
glVertex2f (0.0,0.0); glVertex2f (100.0,100.0);
glEnd();
畫出來的就是虛線。