Skip to content

Commit 15ecfa4

Browse files
author
1101005304@qq.com
committed
add params center_image_xxxx
1 parent 3402f7e commit 15ecfa4

File tree

6 files changed

+291
-1
lines changed

6 files changed

+291
-1
lines changed

app/src/main/java/com/android/view/TextGroupView.java

Lines changed: 186 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ public class TextGroupView extends LinearLayout {
5454
private TextView centerTextView;
5555
private TextView rightTextView;
5656
private EditText editView;
57+
private ImageView centerImageView;
5758
private ImageView rightImageView;
5859

5960
private int allTextColor;
@@ -161,6 +162,24 @@ public class TextGroupView extends LinearLayout {
161162
private int editPaddingRight;
162163
private int editPaddingBottom;
163164

165+
166+
//中间图片控件属性
167+
private int centerImageSrc;
168+
private int centerImageBackground;
169+
private int centerImageWidth;
170+
private int centerImageHeight;
171+
private int centerImageScaleType;
172+
private int centerImageMargin;
173+
private int centerImageMarginLeft;
174+
private int centerImageMarginTop;
175+
private int centerImageMarginRight;
176+
private int centerImageMarginBottom;
177+
private int centerImagePadding;
178+
private int centerImagePaddingLeft;
179+
private int centerImagePaddingTop;
180+
private int centerImagePaddingRight;
181+
private int centerImagePaddingBottom;
182+
164183
//右边图片控件属性
165184
private int rightImageSrc;
166185
private int rightImageBackground;
@@ -355,6 +374,22 @@ private void initAttrs(Context context, AttributeSet attrs) {
355374
editPaddingTop = typedArray.getDimensionPixelOffset(R.styleable.TextGroupView_edit_paddingTop, 0);
356375
editPaddingRight = typedArray.getDimensionPixelOffset(R.styleable.TextGroupView_edit_paddingRight, 0);
357376
editPaddingBottom = typedArray.getDimensionPixelOffset(R.styleable.TextGroupView_edit_paddingBottom, 0);
377+
//中间边图片
378+
centerImageSrc = typedArray.getResourceId(R.styleable.TextGroupView_center_imageSrc, 0);
379+
centerImageBackground = typedArray.getResourceId(R.styleable.TextGroupView_center_imageBackground, 0);
380+
centerImageWidth = typedArray.getLayoutDimension(R.styleable.TextGroupView_center_imageWidth, LayoutParams.WRAP_CONTENT);
381+
centerImageHeight = typedArray.getLayoutDimension(R.styleable.TextGroupView_center_imageHeight, LayoutParams.WRAP_CONTENT);
382+
centerImageScaleType = typedArray.getInt(R.styleable.TextGroupView_center_imageScaleType, 0);
383+
centerImageMargin = typedArray.getDimensionPixelOffset(R.styleable.TextGroupView_center_imageMargin, 0);
384+
centerImageMarginLeft = typedArray.getDimensionPixelOffset(R.styleable.TextGroupView_center_imageMarginLeft, 0);
385+
centerImageMarginTop = typedArray.getDimensionPixelOffset(R.styleable.TextGroupView_center_imageMarginTop, 0);
386+
centerImageMarginRight = typedArray.getDimensionPixelOffset(R.styleable.TextGroupView_center_imageMarginRight, 0);
387+
centerImageMarginBottom = typedArray.getDimensionPixelOffset(R.styleable.TextGroupView_right_imageMarginBottom, 0);
388+
centerImagePadding = typedArray.getDimensionPixelOffset(R.styleable.TextGroupView_center_imagePadding, 0);
389+
centerImagePaddingLeft = typedArray.getDimensionPixelOffset(R.styleable.TextGroupView_center_imagePaddingLeft, 0);
390+
centerImagePaddingTop = typedArray.getDimensionPixelOffset(R.styleable.TextGroupView_center_imagePaddingTop, 0);
391+
centerImagePaddingRight = typedArray.getDimensionPixelOffset(R.styleable.TextGroupView_center_imagePaddingRight, 0);
392+
centerImagePaddingBottom = typedArray.getDimensionPixelOffset(R.styleable.TextGroupView_center_imagePaddingBottom, 0);
358393
//右边边图片
359394
rightImageSrc = typedArray.getResourceId(R.styleable.TextGroupView_right_imageSrc, 0);
360395
rightImageBackground = typedArray.getResourceId(R.styleable.TextGroupView_right_imageBackground, 0);
@@ -375,7 +410,7 @@ private void initAttrs(Context context, AttributeSet attrs) {
375410
setBackground();
376411
//设置内容对齐方式
377412
setGravity(Gravity.CENTER_VERTICAL);
378-
//添加视图(ImageView + TextView +TextView + EditText + ImageView)
413+
//添加视图(ImageView + TextView +TextView + EditText + ImageView + ImageView
379414
leftImageView = new ImageView(context);
380415
leftImageView.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
381416
addView(leftImageView);
@@ -391,6 +426,9 @@ private void initAttrs(Context context, AttributeSet attrs) {
391426
editView = new EditText(context);
392427
editView.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.MATCH_PARENT));
393428
addView(editView);
429+
centerImageView = new ImageView(context);
430+
centerImageView.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
431+
addView(centerImageView);
394432
rightImageView = new ImageView(context);
395433
rightImageView.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
396434
addView(rightImageView);
@@ -445,6 +483,12 @@ private void initAttrs(Context context, AttributeSet attrs) {
445483
editView.setTextColor(editTextColor);
446484
editView.setTextSize(TypedValue.COMPLEX_UNIT_PX, editTextSize);
447485
editView.setGravity(editGravity);
486+
//中间图标
487+
setMarginPaddingWeight(centerImageView, centerImageMargin, centerImageMarginLeft, centerImageMarginTop, centerImageMarginRight, centerImageMarginBottom, centerImagePadding, centerImagePaddingLeft, centerImagePaddingTop, centerImagePaddingRight, centerImagePaddingBottom, -1);
488+
centerImageView.setImageResource(centerImageSrc);
489+
centerImageView.setBackgroundResource(centerImageBackground);
490+
centerImageView.setScaleType(scaleTypes[centerImageScaleType]);
491+
setParams(centerImageView, centerImageWidth, centerImageHeight);
448492
//右边图标
449493
setMarginPaddingWeight(rightImageView, rightImageMargin, rightImageMarginLeft, rightImageMarginTop, rightImageMarginRight, rightImageMarginBottom, rightImagePadding, rightImagePaddingLeft, rightImagePaddingTop, rightImagePaddingRight, rightImagePaddingBottom, -1);
450494
rightImageView.setImageResource(rightImageSrc);
@@ -1772,4 +1816,145 @@ public void setRightImagePaddingBottom(int rightImagePaddingBottom) {
17721816
this.rightImagePaddingBottom = rightImagePaddingBottom;
17731817
setPadding(rightImageView, rightImagePadding, rightTextPaddingLeft, rightImagePaddingTop, rightTextPaddingRight, rightImagePaddingBottom);
17741818
}
1819+
1820+
public int getCenterImageSrc() {
1821+
return centerImageSrc;
1822+
}
1823+
1824+
public void setCenterImageSrc(int centerImageSrc) {
1825+
this.centerImageSrc = centerImageSrc;
1826+
centerImageView.setImageResource(centerImageSrc);
1827+
}
1828+
1829+
public int getCenterImageBackground() {
1830+
return centerImageBackground;
1831+
}
1832+
1833+
public void setCenterImageBackground(int centerImageBackground) {
1834+
this.centerImageBackground = centerImageBackground;
1835+
centerImageView.setBackgroundResource(centerImageBackground);
1836+
}
1837+
1838+
public int getCenterImageWidth() {
1839+
return centerImageWidth;
1840+
}
1841+
1842+
public void setCenterImageWidth(int centerImageWidth) {
1843+
this.centerImageWidth = centerImageWidth;
1844+
setParams(centerImageView, centerImageWidth, centerImageHeight);
1845+
}
1846+
1847+
public int getCenterImageHeight() {
1848+
return centerImageHeight;
1849+
}
1850+
1851+
public void setCenterImageHeight(int centerImageHeight) {
1852+
this.centerImageHeight = centerImageHeight;
1853+
setParams(centerImageView, centerImageWidth, centerImageHeight);
1854+
}
1855+
1856+
public ImageView.ScaleType getCenterImageScaleType() {
1857+
return scaleTypes[centerImageScaleType];
1858+
}
1859+
1860+
public void setCenterImageScaleType(ImageView.ScaleType scaleType) {
1861+
for (int i = 0; i < scaleTypes.length; i++) {
1862+
if (scaleTypes[i] == scaleType) {
1863+
this.centerImageScaleType = i;
1864+
}
1865+
}
1866+
centerImageView.setScaleType(scaleType);
1867+
}
1868+
1869+
public int getCenterImageMargin() {
1870+
return centerImageMargin;
1871+
}
1872+
1873+
public void setCenterImageMargin(int centerImageMargin) {
1874+
this.centerImageMargin = centerImageMargin;
1875+
setMargin(centerImageView, centerImageMargin, centerImageMarginLeft, centerImageMarginTop, centerImageMarginRight, centerImageMarginBottom);
1876+
}
1877+
1878+
public int getCenterImageMarginLeft() {
1879+
return centerImageMarginLeft;
1880+
}
1881+
1882+
public void setCenterImageMarginLeft(int centerImageMarginLeft) {
1883+
this.centerImageMarginLeft = centerImageMarginLeft;
1884+
setMargin(centerImageView, centerImageMargin, centerImageMarginLeft, centerImageMarginTop, centerImageMarginRight, centerImageMarginBottom);
1885+
}
1886+
1887+
public int getCenterImageMarginTop() {
1888+
return centerImageMarginTop;
1889+
}
1890+
1891+
public void setCenterImageMarginTop(int centerImageMarginTop) {
1892+
this.centerImageMarginTop = centerImageMarginTop;
1893+
setMargin(centerImageView, centerImageMargin, centerImageMarginLeft, centerImageMarginTop, centerImageMarginRight, centerImageMarginBottom);
1894+
}
1895+
1896+
public int getCenterImageMarginCenter() {
1897+
return centerImageMarginRight;
1898+
}
1899+
1900+
public void setCenterImageMarginCenter(int centerImageMarginRight) {
1901+
this.centerImageMarginRight = centerImageMarginRight;
1902+
setMargin(centerImageView, centerImageMargin, centerImageMarginLeft, centerImageMarginTop, centerImageMarginRight, centerImageMarginBottom);
1903+
}
1904+
1905+
public int getCenterImageMarginBottom() {
1906+
return centerImageMarginBottom;
1907+
}
1908+
1909+
public void setCenterImageMarginBottom(int centerImageMarginBottom) {
1910+
this.centerImageMarginBottom = centerImageMarginBottom;
1911+
setMargin(centerImageView, centerImageMargin, centerImageMarginLeft, centerImageMarginTop, centerImageMarginRight, centerImageMarginBottom);
1912+
}
1913+
1914+
public int getCenterImagePadding() {
1915+
return centerImagePadding;
1916+
}
1917+
1918+
public void setCenterImagePadding(int centerImagePadding) {
1919+
this.centerImagePadding = centerImagePadding;
1920+
setPadding(centerImageView, centerImagePadding, centerTextPaddingLeft, centerImagePaddingTop, centerTextPaddingRight, centerImagePaddingBottom);
1921+
}
1922+
1923+
public int getCenterImagePaddingLeft() {
1924+
return centerImagePaddingLeft;
1925+
}
1926+
1927+
public void setCenterImagePaddingLeft(int centerImagePaddingLeft) {
1928+
this.centerImagePaddingLeft = centerImagePaddingLeft;
1929+
setPadding(centerImageView, centerImagePadding, centerTextPaddingLeft, centerImagePaddingTop, centerTextPaddingRight, centerImagePaddingBottom);
1930+
}
1931+
1932+
public int getCenterImagePaddingTop() {
1933+
return centerImagePaddingTop;
1934+
}
1935+
1936+
public void setCenterImagePaddingTop(int centerImagePaddingTop) {
1937+
this.centerImagePaddingTop = centerImagePaddingTop;
1938+
setPadding(centerImageView, centerImagePadding, centerTextPaddingLeft, centerImagePaddingTop, centerTextPaddingRight, centerImagePaddingBottom);
1939+
}
1940+
1941+
public int getCenterImagePaddingRight() {
1942+
return centerImagePaddingRight;
1943+
}
1944+
1945+
public void setCenterImagePaddingRight(int centerImagePaddingRight) {
1946+
this.centerImagePaddingRight = centerImagePaddingRight;
1947+
setPadding(centerImageView, centerImagePadding, centerTextPaddingLeft, centerImagePaddingTop, centerTextPaddingRight, centerImagePaddingBottom);
1948+
}
1949+
1950+
public int getCenterImagePaddingBottom() {
1951+
return centerImagePaddingBottom;
1952+
}
1953+
1954+
public void setCenterImagePaddingBottom(int centerImagePaddingBottom) {
1955+
this.centerImagePaddingBottom = centerImagePaddingBottom;
1956+
setPadding(centerImageView, centerImagePadding, centerTextPaddingLeft, centerImagePaddingTop, centerTextPaddingRight, centerImagePaddingBottom);
1957+
}
1958+
1959+
17751960
}
Loading
Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
3+
xmlns:app="http://schemas.android.com/apk/res-auto"
4+
android:layout_width="match_parent"
5+
android:layout_height="match_parent"
6+
android:orientation="vertical">
7+
8+
<com.android.view.TextGroupView
9+
android:layout_width="match_parent"
10+
android:layout_height="60dp"
11+
android:layout_marginLeft="20dp"
12+
android:layout_marginRight="20dp"
13+
android:layout_marginTop="20dp"
14+
app:left_imageMarginLeft="10dp"
15+
app:left_imageSrc="@drawable/text_group_view_ic_head"
16+
app:left_imageWidth="50dp"
17+
app:left_textPaddingLeft="10dp"
18+
app:radius="8dp"
19+
app:right_imagePaddingRight="10dp"
20+
app:right_imageSrc="@drawable/text_group_view_ic_arrow"
21+
app:right_text="更换头像"
22+
app:right_textColor="#FFFFFF"
23+
app:solid="#161538"></com.android.view.TextGroupView>
24+
25+
<com.android.view.TextGroupView
26+
android:layout_width="match_parent"
27+
android:layout_height="60dp"
28+
android:layout_marginLeft="20dp"
29+
android:layout_marginRight="20dp"
30+
android:layout_marginTop="20dp"
31+
app:edit_hintText="输入昵称"
32+
app:edit_hintTextColor="#FFFFFF"
33+
app:edit_textColor="#FFFFFF"
34+
app:left_text="昵称"
35+
app:left_textColor="#FFFFFF"
36+
app:left_textPaddingLeft="10dp"
37+
app:radius="8dp"
38+
app:right_imagePaddingRight="10dp"
39+
app:right_imageSrc="@drawable/text_group_view_ic_arrow"
40+
app:solid="#161538"></com.android.view.TextGroupView>
41+
42+
<com.android.view.TextGroupView
43+
android:layout_width="match_parent"
44+
android:layout_height="60dp"
45+
android:layout_marginLeft="20dp"
46+
android:layout_marginRight="20dp"
47+
android:layout_marginTop="20dp"
48+
app:left_imagePaddingLeft="10dp"
49+
app:left_imageSrc="@drawable/text_group_view_ic_item"
50+
app:left_text="基本信息"
51+
app:left_textColor="#FFFFFF"
52+
app:radius="8dp"
53+
app:right_imagePaddingRight="10dp"
54+
app:right_imageSrc="@drawable/text_group_view_ic_arrow"
55+
app:solid="#161538"></com.android.view.TextGroupView>
56+
57+
58+
<com.android.view.TextGroupView
59+
android:layout_width="match_parent"
60+
android:layout_height="60dp"
61+
android:layout_marginLeft="20dp"
62+
android:layout_marginRight="20dp"
63+
android:layout_marginTop="20dp"
64+
app:center_imagePaddingRight="10dp"
65+
app:center_imageSrc="@drawable/text_group_view_ic_head"
66+
app:left_text="头像"
67+
app:left_textColor="#FFFFFF"
68+
app:left_textPaddingLeft="10dp"
69+
app:radius="8dp"
70+
app:right_imagePaddingRight="10dp"
71+
app:right_imageSrc="@drawable/text_group_view_ic_arrow"
72+
app:solid="#161538"></com.android.view.TextGroupView>
73+
74+
</LinearLayout>

app/src/main/res/values/attrs.xml

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -203,6 +203,37 @@
203203
<attr name="edit_paddingTop" format="dimension" />
204204
<attr name="edit_paddingRight" format="dimension" />
205205
<attr name="edit_paddingBottom" format="dimension" />
206+
<!--############中间图片############-->
207+
<attr name="center_imageSrc" format="reference" />
208+
<attr name="center_imageBackground" format="reference" />
209+
<attr name="center_imageWidth" format="dimension">
210+
<enum name="match_parent" value="-1" />
211+
<enum name="wrap_content" value="-2" />
212+
</attr>
213+
<attr name="center_imageHeight" format="dimension">
214+
<enum name="match_parent" value="-1" />
215+
<enum name="wrap_content" value="-2" />
216+
</attr>
217+
<attr name="center_imageScaleType">
218+
<flag name="matrix" value="0" />
219+
<flag name="fit_xy" value="1" />
220+
<flag name="fit_start" value="2" />
221+
<flag name="fit_center" value="3" />
222+
<flag name="fit_end" value="4" />
223+
<flag name="center" value="5" />
224+
<flag name="center_crop" value="6" />
225+
<flag name="center_inside" value="7" />
226+
</attr>
227+
<attr name="center_imageMargin" format="dimension" />
228+
<attr name="center_imageMarginLeft" format="dimension" />
229+
<attr name="center_imageMarginTop" format="dimension" />
230+
<attr name="center_imageMarginRight" format="dimension" />
231+
<attr name="center_imageMarginBottom" format="dimension" />
232+
<attr name="center_imagePadding" format="dimension" />
233+
<attr name="center_imagePaddingLeft" format="dimension" />
234+
<attr name="center_imagePaddingTop" format="dimension" />
235+
<attr name="center_imagePaddingRight" format="dimension" />
236+
<attr name="center_imagePaddingBottom" format="dimension" />
206237
<!--############右边图片############-->
207238
<attr name="right_imageSrc" format="reference" />
208239
<attr name="right_imageBackground" format="reference" />

0 commit comments

Comments
 (0)