Skip to content

Commit 976a132

Browse files
author
xiaoqi
committed
预览功能
1 parent 36fddf6 commit 976a132

File tree

4 files changed

+110
-4
lines changed

4 files changed

+110
-4
lines changed

library/src/main/java/com/noober/background/BackgroundFactory.java

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import android.widget.TextView;
2121

2222
import com.noober.background.drawable.DrawableFactory;
23+
import com.noober.background.view.BLButton;
2324

2425
import java.lang.reflect.Constructor;
2526
import java.util.Map;
@@ -35,6 +36,7 @@ public class BackgroundFactory implements LayoutInflater.Factory2 {
3536

3637
@Override
3738
public View onCreateView(String name, Context context, AttributeSet attrs) {
39+
name = switchBLViewToOriginal(name);
3840
View view = null;
3941
if (mViewCreateFactory2 != null) {
4042
view = mViewCreateFactory2.onCreateView(name, context, attrs);
@@ -47,6 +49,43 @@ public View onCreateView(String name, Context context, AttributeSet attrs) {
4749
return setViewBackground(name, context, attrs, view);
4850
}
4951

52+
private String switchBLViewToOriginal(String name) {
53+
if(name.equals(Const.BLButton)){
54+
name = "Button";
55+
}else if(name.equals(Const.BLCheckBox)){
56+
name = "CheckBox";
57+
}else if(name.equals(Const.BLEditText)){
58+
name = "EditText";
59+
}else if(name.equals(Const.BLFrameLayout)){
60+
name = "FrameLayout";
61+
}else if(name.equals(Const.BLGridLayout)){
62+
name = "GridLayout";
63+
}else if(name.equals(Const.BLGridView)){
64+
name = "GridView";
65+
}else if(name.equals(Const.BLImageButton)){
66+
name = "ImageButton";
67+
}else if(name.equals(Const.BLImageView)){
68+
name = "ImageView";
69+
}else if(name.equals(Const.BLLinearLayout)){
70+
name = "LinearLayout";
71+
}else if(name.equals(Const.BLListView)){
72+
name = "ListView";
73+
}else if(name.equals(Const.BLRadioButton)){
74+
name = "RadioButton";
75+
}else if(name.equals(Const.BLRadioGroup)){
76+
name = "RadioGroup";
77+
}else if(name.equals(Const.BLRelativeLayout)){
78+
name = "RelativeLayout";
79+
}else if(name.equals(Const.BLScrollView)){
80+
name = "ScrollView";
81+
}else if(name.equals(Const.BLTextView)){
82+
name = "TextView";
83+
}else if(name.equals(Const.BLView)){
84+
name = "View";
85+
}
86+
return name;
87+
}
88+
5089
@Nullable
5190
public static View setViewBackground(Context context, AttributeSet attrs, View view){
5291
return setViewBackground(null, context, attrs, view);
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
package com.noober.background;
2+
3+
import com.noober.background.view.BLButton;
4+
import com.noober.background.view.BLCheckBox;
5+
import com.noober.background.view.BLEditText;
6+
import com.noober.background.view.BLFrameLayout;
7+
import com.noober.background.view.BLGridLayout;
8+
import com.noober.background.view.BLGridView;
9+
import com.noober.background.view.BLImageButton;
10+
import com.noober.background.view.BLImageView;
11+
import com.noober.background.view.BLLinearLayout;
12+
import com.noober.background.view.BLListView;
13+
import com.noober.background.view.BLRadioButton;
14+
import com.noober.background.view.BLRadioGroup;
15+
import com.noober.background.view.BLRelativeLayout;
16+
import com.noober.background.view.BLScrollView;
17+
import com.noober.background.view.BLTextView;
18+
import com.noober.background.view.BLView;
19+
20+
/**
21+
* @author xiaoqi
22+
*/
23+
public class Const {
24+
public static final String BLButton = BLButton.class.getCanonicalName();
25+
public static final String BLCheckBox = BLCheckBox.class.getCanonicalName();
26+
public static final String BLEditText = BLEditText.class.getCanonicalName();
27+
public static final String BLFrameLayout = BLFrameLayout.class.getCanonicalName();
28+
public static final String BLGridLayout = BLGridLayout.class.getCanonicalName();
29+
public static final String BLGridView = BLGridView.class.getCanonicalName();
30+
public static final String BLImageButton = BLImageButton.class.getCanonicalName();
31+
public static final String BLImageView = BLImageView.class.getCanonicalName();
32+
public static final String BLLinearLayout = BLLinearLayout.class.getCanonicalName();
33+
public static final String BLListView = BLListView.class.getCanonicalName();
34+
public static final String BLRadioButton = BLRadioButton.class.getCanonicalName();
35+
public static final String BLRadioGroup = BLRadioGroup.class.getCanonicalName();
36+
public static final String BLRelativeLayout = BLRelativeLayout.class.getCanonicalName();
37+
public static final String BLScrollView = BLScrollView.class.getCanonicalName();
38+
public static final String BLTextView = BLTextView.class.getCanonicalName();
39+
public static final String BLView = BLView.class.getCanonicalName();
40+
}

library/src/main/java/com/noober/background/view/BLReleativeLayout.java renamed to library/src/main/java/com/noober/background/view/BLRelativeLayout.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,17 +6,17 @@
66

77
import com.noober.background.BackgroundFactory;
88

9-
public class BLReleativeLayout extends RelativeLayout {
10-
public BLReleativeLayout(Context context) {
9+
public class BLRelativeLayout extends RelativeLayout {
10+
public BLRelativeLayout(Context context) {
1111
super(context);
1212
}
1313

14-
public BLReleativeLayout(Context context, AttributeSet attrs) {
14+
public BLRelativeLayout(Context context, AttributeSet attrs) {
1515
super(context, attrs);
1616
init(context, attrs);
1717
}
1818

19-
public BLReleativeLayout(Context context, AttributeSet attrs, int defStyleAttr) {
19+
public BLRelativeLayout(Context context, AttributeSet attrs, int defStyleAttr) {
2020
super(context, attrs, defStyleAttr);
2121
init(context, attrs);
2222
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
package com.noober.background.view;
2+
3+
import android.content.Context;
4+
import android.util.AttributeSet;
5+
import android.view.View;
6+
7+
import com.noober.background.BackgroundFactory;
8+
9+
public class BLView extends View {
10+
public BLView(Context context) {
11+
super(context);
12+
}
13+
14+
public BLView(Context context, AttributeSet attrs) {
15+
super(context, attrs);
16+
init(context, attrs);
17+
}
18+
19+
public BLView(Context context, AttributeSet attrs, int defStyleAttr) {
20+
super(context, attrs, defStyleAttr);
21+
init(context, attrs);
22+
}
23+
24+
private void init(Context context, AttributeSet attrs){
25+
BackgroundFactory.setViewBackground(context, attrs, this);
26+
}
27+
}

0 commit comments

Comments
 (0)