android.widget.LinearLayout#setBackground ( )源码实例Demo

下面列出了android.widget.LinearLayout#setBackground ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: RxTools-master   文件: RxIconRoundProgressBar.java
@SuppressWarnings("deprecation")
@Override
protected void drawProgress(LinearLayout layoutProgress, float max, float progress, float totalWidth,
                            int radius, int padding, int colorProgress, boolean isReverse) {
    GradientDrawable backgroundDrawable = createGradientDrawable(colorProgress);
    int newRadius = radius - (padding / 2);
    if (isReverse && progress != max)
        backgroundDrawable.setCornerRadii(new float[]{newRadius, newRadius, newRadius, newRadius, newRadius, newRadius, newRadius, newRadius});
    else
        backgroundDrawable.setCornerRadii(new float[]{0, 0, newRadius, newRadius, newRadius, newRadius, 0, 0});

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
        layoutProgress.setBackground(backgroundDrawable);
    } else {
        layoutProgress.setBackgroundDrawable(backgroundDrawable);
    }

    float ratio = max / progress;
    int progressWidth = (int) ((totalWidth - ((padding * 2) + ivProgressIcon.getWidth())) / ratio);
    ViewGroup.LayoutParams progressParams = layoutProgress.getLayoutParams();
    progressParams.width = progressWidth;
    layoutProgress.setLayoutParams(progressParams);
}
 
源代码2 项目: RxTools-master   文件: RxTextRoundProgressBar.java
@Override
protected void drawProgress(LinearLayout layoutProgress, float max, float progress, float totalWidth,
                            int radius, int padding, int colorProgress, boolean isReverse) {
    GradientDrawable backgroundDrawable = createGradientDrawable(colorProgress);
    int newRadius = radius - (padding / 2);
    backgroundDrawable.setCornerRadii(new float[]{newRadius, newRadius, newRadius, newRadius, newRadius, newRadius, newRadius, newRadius});
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
        layoutProgress.setBackground(backgroundDrawable);
    } else {
        layoutProgress.setBackgroundDrawable(backgroundDrawable);
    }

    float ratio = max / progress;
    int progressWidth = (int) ((totalWidth - (padding * 2)) / ratio);
    ViewGroup.LayoutParams progressParams = layoutProgress.getLayoutParams();
    progressParams.width = progressWidth;
    layoutProgress.setLayoutParams(progressParams);
}
 
源代码3 项目: RxTools-master   文件: RxRoundProgressBar.java
@SuppressWarnings("deprecation")
@Override
protected void drawProgress(LinearLayout layoutProgress, float max, float progress, float totalWidth,
                            int radius, int padding, int colorProgress, boolean isReverse) {
    GradientDrawable backgroundDrawable = createGradientDrawable(colorProgress);
    int newRadius = radius - (padding / 2);
    backgroundDrawable.setCornerRadii(new float[]{newRadius, newRadius, newRadius, newRadius, newRadius, newRadius, newRadius, newRadius});
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
        layoutProgress.setBackground(backgroundDrawable);
    } else {
        layoutProgress.setBackgroundDrawable(backgroundDrawable);
    }

    float ratio = max / progress;
    int progressWidth = (int) ((totalWidth - (padding * 2)) / ratio);
    ViewGroup.LayoutParams progressParams = layoutProgress.getLayoutParams();
    progressParams.width = progressWidth;
    layoutProgress.setLayoutParams(progressParams);
}
 
@Override
protected void drawProgress(@NonNull LinearLayout layoutProgress,
                            @NonNull GradientDrawable progressDrawable,
                            float max,
                            float progress,
                            float totalWidth,
                            int radius,
                            int padding,
                            boolean isReverse) {
    int newRadius = radius - (padding / 2);
    progressDrawable.setCornerRadii(new float[]{newRadius, newRadius, newRadius, newRadius, newRadius, newRadius, newRadius, newRadius});
    layoutProgress.setBackground(progressDrawable);
    float ratio = max / progress;
    int progressWidth = (int) ((totalWidth - (padding * 2)) / ratio);
    ViewGroup.MarginLayoutParams progressParams = (ViewGroup.MarginLayoutParams) layoutProgress.getLayoutParams();
    progressParams.width = progressWidth;
    if (padding + (progressWidth / 2) < radius) {
        int margin = Math.max(radius - padding, 0) - (progressWidth / 2);
        progressParams.topMargin = margin;
        progressParams.bottomMargin = margin;
    } else {
        progressParams.topMargin = 0;
        progressParams.bottomMargin = 0;
    }
    layoutProgress.setLayoutParams(progressParams);
}
 
@TargetApi(Build.VERSION_CODES.JELLY_BEAN)
@SuppressWarnings("deprecation")
private void initHeadViews() {
    headItemTitle = (TextView) this.findViewById(R.id.current_head_item_title);
    headItemTitle.setTextColor(headItemTitleColor);

    headItemSubTitle = (TextView) this.findViewById(R.id.current_head_item_sub_title);
    headItemSubTitle.setTextColor(headItemSubTitleColor);

    headItemFirstPhoto = (ImageView) this.findViewById(R.id.current_head_item_photo);
    headItemSecondPhoto = (ImageView) this.findViewById(R.id.second_head_item_photo);
    headItemThirdPhoto = (ImageView) this.findViewById(R.id.third_head_item_photo);
    headItemBackground = (ImageView) this.findViewById(R.id.current_back_item_background);
    headItemBackgroundSwitcher = (ImageView) this.findViewById(R.id.background_switcher);
    headItemButtonSwitcher = (ImageButton) this.findViewById(R.id.user_switcher);
    headItemBackgroundGradientLL = (LinearLayout) this.findViewById(R.id.background_gradient);
    int sdk = android.os.Build.VERSION.SDK_INT;
    if (sdk < android.os.Build.VERSION_CODES.JELLY_BEAN) {
        headItemBackgroundGradientLL.setBackgroundDrawable(headItemBackgroundGradient);
    } else {
        headItemBackgroundGradientLL.setBackground(headItemBackgroundGradient);
    }
}
 
@Override
protected void drawProgress(@NonNull LinearLayout layoutProgress,
                            @NonNull GradientDrawable progressDrawable,
                            float max,
                            float progress,
                            float totalWidth,
                            int radius,
                            int padding,
                            boolean isReverse) {
    int newRadius = radius - (padding / 2);
    progressDrawable.setCornerRadii(new float[]{newRadius, newRadius, newRadius, newRadius, newRadius, newRadius, newRadius, newRadius});
    layoutProgress.setBackground(progressDrawable);
    float ratio = max / progress;
    int progressWidth = (int) ((totalWidth - (padding * 2)) / ratio);
    ViewGroup.MarginLayoutParams progressParams = (ViewGroup.MarginLayoutParams) layoutProgress.getLayoutParams();
    progressParams.width = progressWidth;
    if (padding + (progressWidth / 2) < radius) {
        int margin = Math.max(radius - padding, 0) - (progressWidth / 2);
        progressParams.topMargin = margin;
        progressParams.bottomMargin = margin;
    } else {
        progressParams.topMargin = 0;
        progressParams.bottomMargin = 0;
    }
    layoutProgress.setLayoutParams(progressParams);
}
 
源代码7 项目: android_tv_metro   文件: EmptyLoadingView.java
@SuppressWarnings("deprecation")
private void init(Context context) {
	LayoutInflater.from(context).inflate(R.layout.empty_loading_layout, this);
	mProgressLayout = (LinearLayout) this.findViewById(R.id.progress_layout);
	mProgressView = (ImageView) this.findViewById(R.id.empty_progress_view);

	mEmptyView = (LinearLayout) this.findViewById(R.id.empty_layout);
       if(Build.VERSION.SDK_INT >= 16){
           mEmptyView.setBackground(null);
       }else {
           mEmptyView.setBackgroundDrawable(null);
       }
	mTextView = (TextView) this.findViewById(R.id.empty_textview);
	mTextView.getPaint().setFakeBoldText(true);

}
 
源代码8 项目: HaoReader   文件: AppCompat.java
public static void useSimpleStyleForSearchView(SearchView searchView, String hint){
    AppCompatImageView search = searchView.findViewById(androidx.appcompat.R.id.search_mag_icon);
    search.setImageDrawable(null);
    LinearLayout plate = searchView.findViewById(R.id.search_plate);
    plate.setBackground(null);
    AppCompatImageView close = searchView.findViewById(R.id.search_close_btn);
    AppCompat.setTint(close, searchView.getResources().getColor(R.color.colorBarText));
    SearchView.SearchAutoComplete searchAutoComplete = searchView.findViewById(R.id.search_src_text);
    searchAutoComplete.setHint(hint);
}
 
源代码9 项目: mobile-android-samples   文件: TorqueHistogram.java
public TorqueHistogram(Context context, TorqueShipActivity activity) {

        super(context);

        intervals = new ArrayList<>();

        outerContainer = new RelativeLayout(context);
        addView(outerContainer);

        container = new LinearLayout(context);
        container.setOrientation(LinearLayout.HORIZONTAL);

        GradientDrawable drawable = new GradientDrawable();
        drawable.setColor(BackgroundColor);
        drawable.setCornerRadius(5);

        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
            container.setBackground(drawable);
        } else {
            container.setBackgroundColor(BackgroundColor);
        }

        container.setLayoutParams(new LinearLayout.LayoutParams(
                ViewGroup.LayoutParams.MATCH_PARENT,
                ViewGroup.LayoutParams.MATCH_PARENT)
        );

        indicator = new TorqueIndicator(context);

        Counter = new TorqueCounter(context);

        Button = new TorqueButton(context, activity);

        histogramInterface = activity;
    }
 
源代码10 项目: Stylish-Widget-for-Android   文件: AProgressBar.java
private GradientDrawable createGradientDrawableWithCorner(LinearLayout layout, int color) {
        GradientDrawable backgroundDrawable = createGradientDrawable(color);
        int newRadius = radius;
        backgroundDrawable.setCornerRadii(new float[]{newRadius, newRadius, newRadius, newRadius, newRadius, newRadius, newRadius, newRadius});

//        backgroundDrawable.setCornerRadii(new float[]{0, 0, newRadius, newRadius, newRadius, newRadius, 0, 0});

        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
            layout.setBackground(backgroundDrawable);
        } else {
            layout.setBackgroundDrawable(backgroundDrawable);
        }
        return backgroundDrawable;
    }
 
源代码11 项目: DialogUtil   文件: MaterialDialog.java
public void setBackground(Drawable drawable) {
    LinearLayout linearLayout = (LinearLayout) mAlertDialogWindow.findViewById(
            R.id.material_background);
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
        linearLayout.setBackground(drawable);
    }
}
 
@Override
protected void drawProgress(@NonNull LinearLayout layoutProgress,
                            @NonNull GradientDrawable progressDrawable,
                            float max,
                            float progress,
                            float totalWidth,
                            int radius,
                            int padding,
                            boolean isReverse) {
    int newRadius = radius - (padding / 2);
    progressDrawable.setCornerRadii(new float[]{newRadius, newRadius, newRadius, newRadius, newRadius, newRadius, newRadius, newRadius});
    layoutProgress.setBackground(progressDrawable);

    float ratio = max / progress;
    int progressWidth = (int) ((totalWidth - (padding * 2)) / ratio);
    ViewGroup.MarginLayoutParams progressParams = (ViewGroup.MarginLayoutParams) layoutProgress.getLayoutParams();
    if (padding + (progressWidth / 2) < radius) {
        int margin = Math.max(radius - padding, 0) - (progressWidth / 2);
        progressParams.topMargin = margin;
        progressParams.bottomMargin = margin;
    } else {
        progressParams.topMargin = 0;
        progressParams.bottomMargin = 0;
    }
    progressParams.width = progressWidth;
    layoutProgress.setLayoutParams(progressParams);
}
 
@Override
protected void drawProgress(@NonNull LinearLayout layoutProgress,
                            @NonNull GradientDrawable progressDrawable,
                            float max,
                            float progress,
                            float totalWidth,
                            int radius,
                            int padding,
                            boolean isReverse) {
    int newRadius = radius - (padding / 2);
    if (isReverse && progress != max) {
        progressDrawable.setCornerRadii(new float[]{newRadius, newRadius, newRadius, newRadius, newRadius, newRadius, newRadius, newRadius});
    } else {
        progressDrawable.setCornerRadii(new float[]{0, 0, newRadius, newRadius, newRadius, newRadius, 0, 0});
    }
    layoutProgress.setBackground(progressDrawable);

    float ratio = max / progress;
    int progressWidth = (int) ((totalWidth - ((padding * 2) + ivProgressIcon.getWidth())) / ratio);
    ViewGroup.MarginLayoutParams progressParams = (ViewGroup.MarginLayoutParams) layoutProgress.getLayoutParams();
    if (isReverse) {
        if (padding + (progressWidth / 2) < radius) {
            int margin = Math.max(radius - padding, 0) - (progressWidth / 2);
            progressParams.topMargin = margin;
            progressParams.bottomMargin = margin;
        } else {
            progressParams.topMargin = 0;
            progressParams.bottomMargin = 0;
        }
    }
    progressParams.width = progressWidth;
    layoutProgress.setLayoutParams(progressParams);
}
 
@SuppressWarnings("deprecation")
@SuppressLint("NewApi")
@Override
protected void onPostExecute(Bitmap bitmap) {
    if (linearLayoutReference != null && bitmap != null) {
        final LinearLayout linearLayout = linearLayoutReference.get();
        if (linearLayout != null) {
            if (Build.VERSION.SDK_INT >= 16)
                linearLayout.setBackground(new BitmapDrawable(resources, bitmap));
            else
                linearLayout.setBackgroundDrawable(new BitmapDrawable(resources, bitmap));
        }
    }
}
 
@Override
protected void drawProgress(@NonNull LinearLayout layoutProgress,
                            @NonNull GradientDrawable progressDrawable,
                            float max,
                            float progress,
                            float totalWidth,
                            int radius,
                            int padding,
                            boolean isReverse) {
    int newRadius = radius - (padding / 2);
    if (isReverse && progress != max) {
        progressDrawable.setCornerRadii(new float[]{newRadius, newRadius, newRadius, newRadius, newRadius, newRadius, newRadius, newRadius});
    } else {
        progressDrawable.setCornerRadii(new float[]{0, 0, newRadius, newRadius, newRadius, newRadius, 0, 0});
    }
    layoutProgress.setBackground(progressDrawable);

    float ratio = max / progress;
    int progressWidth = (int) ((totalWidth - ((padding * 2) + ivProgressIcon.getWidth())) / ratio);
    ViewGroup.MarginLayoutParams progressParams = (ViewGroup.MarginLayoutParams) layoutProgress.getLayoutParams();
    if (isReverse) {
        if (padding + (progressWidth / 2) < radius) {
            int margin = Math.max(radius - padding, 0) - (progressWidth / 2);
            progressParams.topMargin = margin;
            progressParams.bottomMargin = margin;
        } else {
            progressParams.topMargin = 0;
            progressParams.bottomMargin = 0;
        }
    }
    progressParams.width = progressWidth;
    layoutProgress.setLayoutParams(progressParams);
}
 
源代码16 项目: pius1   文件: MaterialDialog.java
public void setBackground(Drawable drawable)
{
           LinearLayout linearLayout = (LinearLayout) mAlertDialogWindow.findViewById(
	R.id.material_background);
           linearLayout.setBackground(drawable);
       }
 
源代码17 项目: microbit   文件: ProjectAdapter.java
@Override
public View getView(int position, View convertView, ViewGroup parent) {

    Project project = mProjects.get(position);
    if(convertView == null) {
        LayoutInflater inflater = LayoutInflater.from(MBApp.getApp());
        convertView = inflater.inflate(R.layout.project_items, null);
    }

    Button appNameButton = (Button) convertView.findViewById(R.id.appNameButton);
    appNameButton.setTypeface(MBApp.getApp().getRobotoTypeface());

    ExtendedEditText appNameEdit = (ExtendedEditText) convertView.findViewById(R.id.appNameEdit);
    appNameEdit.setTypeface(MBApp.getApp().getRobotoTypeface());

    LinearLayout actionBarLayout = (LinearLayout) convertView.findViewById(R.id.actionBarForProgram);
    if(actionBarLayout != null) {
        if(project.actionBarExpanded) {
            actionBarLayout.setVisibility(View.VISIBLE);
            appNameButton.setCompoundDrawablesWithIntrinsicBounds(null, null, ContextCompat.getDrawable(MBApp.getApp()
                    , R.drawable.ic_arrow_down), null);
        } else {
            actionBarLayout.setVisibility(View.GONE);
            appNameButton.setCompoundDrawablesWithIntrinsicBounds(null, null, ContextCompat.getDrawable(MBApp.getApp()
                    , R.drawable.ic_arrow_left), null);
        }
    }

    appNameButton.setText(project.name);
    appNameButton.setTag(R.id.positionId, position);
    appNameButton.setTag(R.id.textEdit, appNameEdit);
    appNameButton.setOnClickListener(appNameClickListener);
    appNameButton.setOnLongClickListener(appNameLongClickListener);

    appNameEdit.setTag(R.id.positionId, position);
    appNameEdit.setTag(R.id.editbutton, appNameButton);
    appNameEdit.setOnEditorActionListener(editorOnActionListener);
    appNameEdit.setFilters(new InputFilter[]{renameFilter});

    if(project.inEditMode) {
        appNameEdit.setVisibility(View.VISIBLE);

        appNameEdit.setText(project.name);
        appNameEdit.setSelection(project.name.length());
        appNameEdit.requestFocus();
        appNameButton.setVisibility(View.INVISIBLE);

    } else {
        appNameEdit.setVisibility(View.INVISIBLE);
        appNameButton.setVisibility(View.VISIBLE);
        //dismissKeyBoard(appNameEdit, false);
    }

    //appNameEdit.setOnClickListener(appNameClickListener);

    TextView flashBtnText = (TextView) convertView.findViewById(R.id.project_item_text);
    flashBtnText.setTypeface(MBApp.getApp().getRobotoTypeface());
    LinearLayout sendBtnLayout = (LinearLayout) convertView.findViewById(R.id.sendBtn);
    sendBtnLayout.setTag(position);
    sendBtnLayout.setOnClickListener(sendBtnClickListener);

    ImageButton deleteBtn = (ImageButton) convertView.findViewById(R.id.deleteBtn);
    deleteBtn.setTag(position);
    deleteBtn.setOnClickListener(deleteBtnClickListener);
    deleteBtn.setEnabled(true);


    Drawable myIcon;
    if(project.runStatus) {
        flashBtnText.setText("");
        myIcon = convertView.getResources().getDrawable(R.drawable.green_btn);
    } else {
        flashBtnText.setText(R.string.flash);
        myIcon = convertView.getResources().getDrawable(R.drawable.blue_btn);
    }
    sendBtnLayout.setBackground(myIcon);

    sendBtnLayout.setClickable(true);
    return convertView;
}
 
/**
 * @param context               the context to use.
 * @param attrs                 attributes.
 * @param parentView            parent
 * @param label                 label
 * @param value                 _value
 * @param dataMap               the map of the data.
 * @param constraintDescription constraints
 */
public GTwoAutoCompleteConnectedTextView(Context context, AttributeSet attrs, LinearLayout parentView, String label, String value,
                                         LinkedHashMap<String, List<String>> dataMap, String constraintDescription) {
    super(context, attrs);
    this.dataMap = dataMap;

    if (value == null)
        value = "";

    String[] valueSplit = value.split(SEP);
    String _combo1Value;
    String _combo2Value;
    if (valueSplit.length == 2) {
        _combo1Value = valueSplit[0];
        _combo2Value = valueSplit[1];
    } else {
        _combo1Value = "";
        _combo2Value = "";
    }

    selectedCombo1Entry = _combo1Value;
    selectedCombo2Entry = _combo2Value;

    TextView textView = new TextView(context);
    LinearLayout.LayoutParams textViewParams = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
    textViewParams.setMargins(15, 25, 15, 15);
    textView.setLayoutParams(textViewParams);
    textView.setPadding(2, 2, 2, 2);
    textView.setText(label.replace(UNDERSCORE, " ").replace(COLON, " ") + " " + constraintDescription);
    textView.setTextColor(Compat.getColor(context, R.color.formcolor));
    parentView.addView(textView);

    LinearLayout combosLayout = new LinearLayout(context);
    LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT,
            LayoutParams.WRAP_CONTENT);
    layoutParams.setMargins(10, 10, 10, 10);
    combosLayout.setLayoutParams(layoutParams);
    combosLayout.setOrientation(LinearLayout.VERTICAL);
    combosLayout.setBackground(Compat.getDrawable(context, R.drawable.thin_background_frame));
    parentView.addView(combosLayout);

    createCombo1(context, _combo1Value, dataMap);

    List<String> combo2ItemsList = new ArrayList<>();
    if (_combo1Value.length() > 0) {
        combo2ItemsList = dataMap.get(_combo1Value);
    }

    createCombo2(context, _combo2Value, combo2ItemsList);

    combosLayout.addView(autoCompleteTextView1);
    combosLayout.addView(autoCompleteTextView2);
}
 
源代码19 项目: Dashchan   文件: ClickableToast.java
private ClickableToast(Holder holder) {
	this.holder = holder;
	Context context = holder.context;
	float density = ResourceUtils.obtainDensity(context);
	int innerPadding = (int) (8f * density);
	LayoutInflater inflater = LayoutInflater.from(context);
	View toast1 = inflater.inflate(LAYOUT_ID, null);
	View toast2 = inflater.inflate(LAYOUT_ID, null);
	TextView message1 = toast1.findViewById(android.R.id.message);
	TextView message2 = toast2.findViewById(android.R.id.message);
	View backgroundSource = null;
	Drawable backgroundDrawable = toast1.getBackground();
	if (backgroundDrawable == null) {
		backgroundDrawable = message1.getBackground();
		if (backgroundDrawable == null) {
			View messageParent = (View) message1.getParent();
			if (messageParent != null) {
				backgroundDrawable = messageParent.getBackground();
				backgroundSource = messageParent;
			}
		} else {
			backgroundSource = message1;
		}
	} else {
		backgroundSource = toast1;
	}

	StringBuilder builder = new StringBuilder();
	for (int i = 0; i < 100; i++) builder.append('W'); // Make long text
	message1.setText(builder); // Avoid minimum widths
	int measureSize = (int) (context.getResources().getConfiguration().screenWidthDp * density + 0.5f);
	toast1.measure(View.MeasureSpec.makeMeasureSpec(measureSize, View.MeasureSpec.AT_MOST),
			View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED));
	toast1.layout(0, 0, toast1.getMeasuredWidth(), toast1.getMeasuredHeight());
	Rect backgroundSourceTotalPadding = getViewTotalPadding(toast1, backgroundSource);
	Rect messageTotalPadding = getViewTotalPadding(toast1, message1);
	messageTotalPadding.left -= backgroundSourceTotalPadding.left;
	messageTotalPadding.top -= backgroundSourceTotalPadding.top;
	messageTotalPadding.right -= backgroundSourceTotalPadding.right;
	messageTotalPadding.bottom -= backgroundSourceTotalPadding.bottom;
	int horizontalPadding = Math.max(messageTotalPadding.left, messageTotalPadding.right) +
			Math.max(message1.getPaddingLeft(), message1.getPaddingRight());
	int verticalPadding = Math.max(messageTotalPadding.top, messageTotalPadding.bottom) +
			Math.max(message1.getPaddingTop(), message1.getPaddingBottom());

	ViewUtils.removeFromParent(message1);
	ViewUtils.removeFromParent(message2);
	LinearLayout linearLayout = new LinearLayout(context);
	linearLayout.setOrientation(LinearLayout.HORIZONTAL);
	linearLayout.setDividerDrawable(new ToastDividerDrawable(0xccffffff, (int) (density + 0.5f)));
	linearLayout.setShowDividers(LinearLayout.SHOW_DIVIDER_MIDDLE);
	linearLayout.setDividerPadding((int) (4f * density));
	linearLayout.setTag(this);
	linearLayout.addView(message1, LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
	linearLayout.addView(message2, LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
	((LinearLayout.LayoutParams) message1.getLayoutParams()).weight = 1f;
	linearLayout.setPadding(horizontalPadding, verticalPadding, horizontalPadding, verticalPadding);

	partialClickDrawable = new PartialClickDrawable(backgroundDrawable);
	message1.setBackground(null);
	message2.setBackground(null);
	linearLayout.setBackground(partialClickDrawable);
	linearLayout.setOnTouchListener(partialClickDrawable);
	message1.setPadding(0, 0, 0, 0);
	message2.setPadding(innerPadding, 0, 0, 0);
	message1.setSingleLine(true);
	message2.setSingleLine(true);
	message1.setEllipsize(TextUtils.TruncateAt.END);
	message2.setEllipsize(TextUtils.TruncateAt.END);
	container = linearLayout;
	message = message1;
	button = message2;

	windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
}
 
源代码20 项目: geopaparazzi   文件: GTwoConnectedComboView.java
/**
 * @param context               the context to use.
 * @param attrs                 attributes.
 * @param parentView            parent
 * @param label                 label
 * @param value                 _value
 * @param dataMap               the map of the data.
 * @param constraintDescription constraints
 */
public GTwoConnectedComboView(Context context, AttributeSet attrs, LinearLayout parentView, String label, String value,
                              LinkedHashMap<String, List<String>> dataMap, String constraintDescription) {
    super(context, attrs);
    this.dataMap = dataMap;

    if (value == null)
        value = "";

    String[] valueSplit = value.split(SEP);
    String _combo1Value;
    String _combo2Value;
    if (valueSplit.length == 2) {
        _combo1Value = valueSplit[0];
        _combo2Value = valueSplit[1];
    } else {
        _combo1Value = "";
        _combo2Value = "";
    }

    TextView textView = new TextView(context);
    LinearLayout.LayoutParams textViewParams = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
    textViewParams.setMargins(15, 25, 15, 15);
    textView.setLayoutParams(textViewParams);
    textView.setPadding(2, 2, 2, 2);
    textView.setText(label.replace(UNDERSCORE, " ").replace(COLON, " ") + " " + constraintDescription);
    textView.setTextColor(Compat.getColor(context, R.color.formcolor));
    parentView.addView(textView);

    LinearLayout combosLayout = new LinearLayout(context);
    LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT,
            LayoutParams.WRAP_CONTENT);
    layoutParams.setMargins(10, 10, 10, 10);
    combosLayout.setLayoutParams(layoutParams);
    combosLayout.setOrientation(LinearLayout.VERTICAL);
    combosLayout.setBackground(Compat.getDrawable(context, R.drawable.thin_background_frame));
    parentView.addView(combosLayout);

    combo1Spinner = new Spinner(context);
    LinearLayout.LayoutParams titleSpinnerParams = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
    titleSpinnerParams.setMargins(15, 25, 15, 15);
    combo1Spinner.setLayoutParams(titleSpinnerParams);
    Set<String> titlesSet = dataMap.keySet();
    ArrayList<String> combo1Items = new ArrayList<>(titlesSet);
    combo1Items.add(0, "");
    ArrayAdapter<String> titleListAdapter = new ArrayAdapter<>(context, android.R.layout.simple_spinner_dropdown_item, combo1Items);
    titleListAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    combo1Spinner.setAdapter(titleListAdapter);
    combo1Spinner.setPopupBackgroundDrawable(Compat.getDrawable(context, R.drawable.thin_background_frame));
    combo1Spinner.setBackground(Compat.getDrawable(context, R.drawable.thin_background_frame));
    int minHeight = getMinComboHeight(context);
    combo1Spinner.setMinimumHeight(minHeight);

    combo2Spinner = new Spinner(context);
    LinearLayout.LayoutParams valueSpinnerParams = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
    valueSpinnerParams.setMargins(15, 25, 15, 15);
    combo2Spinner.setLayoutParams(valueSpinnerParams);
    combo2Spinner.setPopupBackgroundDrawable(Compat.getDrawable(context, R.drawable.thin_background_frame));
    combo2Spinner.setBackground(Compat.getDrawable(context, R.drawable.thin_background_frame));
    combo2Spinner.setMinimumHeight(minHeight);

    List<String> combo2ItemsList = new ArrayList<>();
    if (_combo1Value.length() > 0) {
        combo2ItemsList = dataMap.get(_combo1Value);
        int indexOf = combo1Items.indexOf(_combo1Value.trim());
        if (indexOf != -1) {
            combo1Spinner.setSelection(indexOf, false);
        }
    }
    ArrayAdapter<String> combo2ListAdapter = new ArrayAdapter<>(context, android.R.layout.simple_spinner_dropdown_item, combo2ItemsList);
    combo2ListAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    combo2Spinner.setAdapter(combo2ListAdapter);

    combosLayout.addView(combo1Spinner);
    combosLayout.addView(combo2Spinner);

    if (_combo2Value.length() > 0) {
        int position = combo2ListAdapter.getPosition(_combo2Value);
        combo2Spinner.setSelection(position, false);
    }

    combo1Spinner.setOnItemSelectedListener(this);
}