日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

用xml画水平虚线和竖直虚线.md

發布時間:2024/4/17 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 用xml画水平虚线和竖直虚线.md 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.畫水平虛線

直接建一個shape,設置stroke屬性就行了,再將這個屬性直接作為background的drawable屬性引入就行了
注意在4.0以上的真機加一句

<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"android:shape="line"><solid android:color="@color/red"></solid><strokeandroid:dashWidth="10dp" //虛線的小線段長度android:dashGap="10dp" //間隔距離android:color="@color/app_color"android:width="4dp"/> </shape> <Viewandroid:id="@+id/content"android:layout_width="match_parent"android:layout_height="30dp"android:layout_gravity="center_vertical"android:background="@drawable/dottde_line"android:layerType="software" /> //4.0以上的加,不然真機中是實線

2.畫豎直虛線

這里借鑒一個 rotate屬性去實現,代碼如下

<?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"><itemandroid:left="-30dp"android:right="-30dp"><rotateandroid:drawable="@drawable/dottde_line"android:visible="true"android:fromDegrees="90"></rotate></item> </layer-list> <Viewandroid:id="@+id/content_2"android:layout_width="30dp"android:layout_height="match_parent"android:layout_gravity="center_horizontal"android:background="@drawable/dottde_v_line"android:layerType="software" />

原理:
設置了fromDegress之后,會先畫一條水平虛線,然后再瞬間順時針旋轉90度角,但是單這樣還不行,因為我的view的寬度設置的是2dp,高度是match_parent,發現出來的只有一個點,郁悶了。
之前說過,他的原理是先畫一條水平線,然后再旋轉,那么view的寬度只有2dp,他就只能畫2dp,所以旋轉后也就是一個點。因此用item的可以設置偏移量的屬性,我們將rotate節點放于一個item節點下面,然后給item設置左右都為-30dp的偏移量,這樣他在先畫水平線的時候,由于負的偏移量(就和負的margin一樣),就可以畫出60dp長的線,然后再旋轉,就可以得到一條豎直虛線。

3用自定義view去畫

public class DashedLineView extends View{public Context ctx;public DashedLineView(Context context, AttributeSet attrs) {super(context, attrs);ctx=context;}@Overrideprotected void onDraw(Canvas canvas) {// TODO Auto-generated method stubsuper.onDraw(canvas);Paint paint = new Paint();paint.setStyle(Paint.Style.STROKE);paint.setColor(getResources().getColor(R.color.red));paint.setStrokeWidth(dip2px(ctx,2));Path path = new Path();path.moveTo(0, 0);path.lineTo(0, 900);PathEffect effects = new DashPathEffect(new float[]{6, 4, 4, 4}, 2);paint.setPathEffect(effects);canvas.drawPath(path, paint);}/*** 根據手機的分辨率從 dp 的單位 轉成為 px(像素)*/public static int dip2px(Context context, float dpValue) {final float scale = context.getResources().getDisplayMetrics().density;return (int) (dpValue * scale + 0.5f);} }

原理:

4.認識圖層列表

地址 https://developer.android.google.cn/guide/topics/resources/drawable-resource.html?hl=zh-cn#LayerList

轉載于:https://www.cnblogs.com/prophet-it/p/6651033.html

總結

以上是生活随笔為你收集整理的用xml画水平虚线和竖直虚线.md的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。