How to create a progress dialog with blue color background and my own spinner style in android? Please help me out.
Dialog dialog = new Dialog(MainActivity.this, R.style.mydialogstyle);
dialog.setContentView(R.layout.dialogmain);
dialog.setCancelable(false);
ProgressBar pbar = (ProgressBar) dialog.findViewById(R.id.progressBar);
Button btncancel = (Button) dialog.findViewById(R.id.cancelbtn);
btncancel.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
dialog.dismiss();
}
});
dialog.show();
R.layout.dialogmain--->>
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:background="#0000FF" android:layout_height="wrap_content">
<ProgressBar style="?android:attr/progressBarStyleHorizontal"
android:progressDrawable="#android:drawable/progress_horizontal"//You can change drawable of spinner
android:layout_marginTop="10dip" android:layout_width="250dip"
android:id="#+id/progressBar" android:layout_height="wrap_content"
android:layout_centerHorizontal="true"></ProgressBar>
<Button android:layout_width="wrap_content" android:background="#drawable/cancel"
android:layout_height="wrap_content" android:text="" android:id="#+id/cancelbtn"
android:layout_marginTop="2dip" android:layout_below="#+id/progressBar"
android:layout_centerHorizontal="true"></Button>
</RelativeLayout>
Res->values-->style.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="mydialogstyle" parent="android:style/Theme.Dialog">
<item name="android:windowBackground">#null</item>
<item name="android:windowNoTitle">false</item>
</style>
</resources>
Related
This is my code that gives a BottomSheet Dialog. After implementation it gives me a normal BottomSheet Dialog, how can i make this Bottom Sheet look like Google BottomSheet Dialog with rounded corners and something like a middle gray line at the top?
Even if it doesn't look exactly like the Bottomsheet Facebook and Google uses, I just want to have a rounded corner for this code.
What do I change or add in my code?
MainActivity.Java
#Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button = (Button) findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
#Override
public void onClick(View v) {
openDialog();
}
});
}
private void openDialog() {
View view = getLayoutInflater().inflate(R.layout.sheet_main, null);
dialog = new BottomSheetDialog(this);
dialog.setContentView(view);
TextView camera_sel = (TextView) view.findViewById(R.id.camera);
TextView gallery_sel = (TextView) view.findViewById(R.id.gallery);
camera_sel.setOnClickListener(new View.OnClickListener() {
#Override
public void onClick(View v) {
takePhotoFromCamera();
dialog.dismiss();
}
});
gallery_sel.setOnClickListener(new View.OnClickListener() {
#Override
public void onClick(View v) {
takePhotoFromGallery();
dialog.dismiss();
}
});
dialog.show();
}
sheet_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
android:padding="4dp">
<TextView
android:id="#+id/camera"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="?attr/selectableItemBackgroundBorderless"
android:clickable="true"
android:drawablePadding="8dp"
android:drawableTop="#drawable/ic_camera"
android:gravity="center_horizontal"
android:padding="16dp"
android:text="Camera"
android:textSize="18sp" />
<TextView
android:id="#+id/gallery"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="?attr/selectableItemBackgroundBorderless"
android:clickable="true"
android:drawablePadding="8dp"
android:drawableTop="#drawable/ic_panorama"
android:gravity="center_horizontal"
android:padding="16dp"
android:text="Gallery"
android:textSize="18sp" />
</LinearLayout>
UPDATE:
I was able to achieve this by adding these to my style.xml and setting it on the theme used for my dialog activity. Thanks!
<style name="HomeTheme" parent="Theme.MaterialComponents.Light.NoActionBar">
<item name="bottomSheetDialogTheme">#style/ThemeOverlay.Demo.BottomSheetDialog</item>
</style>
<style
name="ThemeOverlay.Demo.BottomSheetDialog"
parent="#style/ThemeOverlay.MaterialComponents.BottomSheetDialog">
<item name="bottomSheetStyle">#style/Widget.Demo.BottomSheet</item>
</style>
<style name="Widget.Demo.BottomSheet" parent="Widget.MaterialComponents.BottomSheet">
<item name="shapeAppearanceOverlay">#style/ShapeAppearanceOverlay.Demo</item>
</style>
<style name="ShapeAppearanceOverlay.Demo" parent="">
<item name="cornerSize">18dp</item>
<item name="cornerFamily">rounded</item>
</style>
Does anyone know how I can change the position of the mentioned part of error floating label (as in the attached image) ? In the picture it is on the left but I want it to be on the right side of the edittext (because of my native language) . I tried gravity and layout gravity but none of them worked out . Thanks in advance .
<android.support.design.widget.TextInputLayout
android:id="#+id/numid"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
app:errorEnabled="true"
app:errorTextAppearance="#style/myerror"
android:layout_gravity="center"
app:hintTextAppearance="#style/TextAppearance.AppCompat.TextInputLayout"
style="#style/EditScreenTextInputLayoutStyle">
<android.support.v7.widget.AppCompatEditText
android:id="#+id/tie"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:inputType="number"
android:gravity="right"
android:textAlignment="gravity"
android:hint="#string/hint2"
android:textDirection="rtl"
/>
<style name="TextAppearance.AppCompat.TextInputLayout" parent="#android:style/TextAppearance">
<item name="android:textColor">#ff0000</item>
<item name="android:layout_gravity">right</item>
<item name="android:textColorHint">#736f6e</item>
<item name="android:gravity">right</item>
<style name="EditScreenTextInputLayoutStyle" parent="Theme.AppCompat.Light">
<item name="colorControlNormal">#000</item>
<item name="colorControlActivated">#000</item>
<item name="colorControlHighlight">#ff0000</item>
<item name="colorAccent">#ffff02</item>
<item name="android:textColorHint">#0000ff</item>
</style>
<style name="myerror" parent="TextAppearance.Design.Error">
<item name="android:textColor">#ff0000</item>
<item name="android:background">#000000</item>
<item name="android:gravity">center</item>
</style>
Try this:
Drawable err_indiactor = ContextCompat.getDrawable(this,R.drawable.indicator_input_error);
yourEditText.setCompoundDrawablesWithIntrinsicBounds(null, null, err_indiactor, null);
this is the Drawable indicator_input_error
The code below works for u
public class MainActivity extends Activity {
EditText use, pass;
Button button;
#Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
use = (EditText) findViewById(R.id.edituse);
pass = (EditText) findViewById(R.id.editpas);
button = (Button) findViewById(R.id.click);
button.setOnClickListener(new OnClickListener() {
#Override
public void onClick(View v) {
// TODO Auto-generated method stub
final String use1 = use.getText().toString();
final String pass1 = pass.getText().toString();
if (!use1.matches("") && !pass1.matches("")) {
Toast.makeText(getApplicationContext(), "Succes",
Toast.LENGTH_SHORT).show();
use.setError(null);
pass.setError(null);
} else if (use1.matches("")) {
use.setError("This field can not be blank");
} else if (pass1.matches("")) {
pass.setError("This field can not be blank");
}
}
});
}
}
And the Xml file
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="${relativePackage}.${activityClass}" >
<TextView
android:id="#+id/test"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Test"
android:textSize="25sp"
android:gravity="center" />
<EditText
android:layout_below="#+id/test"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="#+id/edituse"/>
<EditText
android:layout_below="#+id/edituse"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="#+id/editpas"
/>
<Button
android:id="#+id/click"
android:layout_below="#+id/editpas"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Click"/>
</RelativeLayout>
Hope this helps...and for English this works.For ur language its a right to left writing,then it may be the problem for the left alignment of the error msg.... ...Don't worry try this.
What style is causing the grey bar in the bottom of an AlertDialog?
Either I need to change the rest of the dialog to match the color or vice versa. I've tried modifying #android:buttonStyle and #android:buttonBarStyle. That helps but there's still some grey peeking out from the edges of the region.
Here are my current styles:
<style name="MyAlertDialog" parent="#android:style/Theme.Dialog">
<item name="#android:background">#FF000000</item>
<item name="#android:buttonBarStyle">#style/MyButtonBar</item>
</style>
<style name="MyButtonBar" parent="#android:style/ButtonBar">
<item name="#android:background">#FF000000</item>
</style>
And it looks like this:
Here is a working solution, based on Rod_Algonquin's idea of using a custom layout.
private void showCustomAlert (String message)
{
// build dialog
LayoutInflater inflater = getLayoutInflater();
View alertView = inflater.inflate (R.layout.custom_dialog, null);
AlertDialog.Builder builder = new AlertDialog.Builder (this, R.style.CustomAlertDialog);
builder.setView (alertView);
final AlertDialog alert = builder.create();
// message
((TextView)alertView.findViewById (R.id.message)).setText (message);
// ok button
alertView.findViewById (R.id.cancel).setOnClickListener (new View.OnClickListener()
{
#Override public void onClick(View v) { alert.dismiss(); }
});
// show
alert.show();
}
Here is a layout that works with this code:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:background="#FF000000">
<TextView android:id="#+id/alertTitle"
android:singleLine="true"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="50dp"
android:gravity="center"
android:background="#android:color/black"
android:textColor="#android:color/white"
android:textAppearance="#android:style/TextAppearance.Large"
android:text="#string/custom_alert_title" />
<TextView android:id="#+id/message"
style="#android:attr/textAppearanceMedium"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="20dp"
android:background="#android:color/black"
android:textColor="#android:color/white"
android:textAppearance="#android:style/TextAppearance.Medium" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:gravity="center"
android:background="#android:color/black"
android:measureWithLargestChild="true">
<Button android:id="#+id/cancel"
style="?android:attr/buttonBarButtonStyle"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:minHeight="50dp"
android:minWidth="100dp"
android:textSize="14sp"
android:text="#android:string/ok" />
</LinearLayout>
</LinearLayout>
Finally, here's the styles, from styles.xml, I referenced; you may not need them depending on your dialog coloring.
<style name="CustomAlertDialog" parent="#android:style/Theme.Dialog">
<item name="#android:background">#FF000000</item>
<item name="#android:buttonBarStyle">#style/CustomButtonBar</item>
</style>
<style name="CustomButtonBar" parent="#android:style/ButtonBar">
<item name="#android:background">#FF000000</item>
</style>
I am using PopupWindow, which is working fine, but the problem is after inflating the layout view that is shown with black border.
final PopupWindow popupWindow = new PopupWindow(context);
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view = inflater.inflate(R.layout.pop_up_window_menu_layout, null);
popupWindow.setContentView(view);
pop_up_window_menu_layout.xml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#color/solid_white"
android:orientation="vertical" >
<TextView
android:id="#+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:gravity="center_vertical"
android:minHeight="?android:attr/listPreferredItemHeightSmall"
android:text="SAVE"
android:textAppearance="?android:attr/textAppearanceListItemSmall"
android:textColor="#color/black"
android:textSize="#dimen/txt_size_sliding_list" />
I've tried to remove border by using popupWindow.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)), but problem is still same.
Can anyone tell me how to remove unwanted black border?
I don't see any border around my popup windows, but I do set them up slightly different than you. Hopefully this points you in the right direction.
popup_view.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:background="#f5f5f5"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TextView
android:text="#string/hello_world"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<Button
android:id="#+id/btn_close"
android:text="Close"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</LinearLayout>
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:id="#+id/main_view"
tools:context=".MainActivity">
<Button
android:id="#+id/btn_popup"
android:text="Popup"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<TextView
android:id="#+id/txt_text"
android:text="#string/hello_world"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</LinearLayout>
MainActivity.java
public class MainActivity extends ActionBarActivity implements View.OnClickListener {
View popupView;
Button btnPopup;
Button btnClose;
PopupWindow popupWindow;
#Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
popupView = getLayoutInflater().inflate(R.layout.popup_view, null);
btnClose = (Button) popupView.findViewById(R.id.btn_close);
btnClose.setOnClickListener(this);
popupWindow = new PopupWindow(popupView,
ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.WRAP_CONTENT);
btnPopup = (Button) findViewById(R.id.btn_popup);
btnPopup.setOnClickListener(this);
}
#Override
public void onClick(View v) {
if (v.getId() == R.id.btn_popup) {
popupWindow.showAtLocation(findViewById(R.id.main_view), Gravity.NO_GRAVITY, 100, 200);
//popupWindow.showAsDropDown(btnPopup, 10, 10);
} else if (v.getId() == R.id.btn_close) {
popupWindow.dismiss();
}
}
}
If you getting a black border this means that the default background is set.
this is how you remove it :
popup.setBackgroundDrawable(null);
Try this
Just try this and let me know..
Be sure to create your Pop-up window referencing your custom theme:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="DialogTheme" parent="android:Theme.Dialog">
<!-- Fill the screen -->
<item name="android:layout_width">fill_parent</item>
<item name="android:layout_height">fill_parent</item>
<!-- No backgrounds and No titles , and no Window Floating -->
<item name="android:windowBackground">#null</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowIsFloating">false</item>
<!-- Set background what you want-->
<item name="android:background">#ff0000</item>
</style>
</resources>
This is because you are sending context inside popup window constructor. -
final PopupWindow popupWindow = new PopupWindow(context);
Change this by popup window view -
View popupView = getLayoutInflater().inflate(R.layout.popup_view, null);
PopupWindow popupWindow = new Pop
I am trying to center the image that I am adding to my Alert Dialog in an Android app as follows:
android.app.AlertDialog.Builder appInfoDialog = new AlertDialog.Builder(this);
appInfoDialog.setIcon(R.drawable.image);
appInfoDialog.setTitle(" ");
appInfoDialog.setMessage("App Info...");
appInfoDialog.setCancelable(true);
AlertDialog dialog = appInfoDialog.create();
dialog.show();
But how can I center this image? Currently, it is left-aligned.
I cannot find a gravity or layout_align property for it!
You can not do this, but You can create Your own Dialog like this:
/values/themes.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="Dialog" parent="android:style/Theme.Dialog">
<item name="android:windowBackground">#null</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowIsFloating">true</item>
</style>
</resources>
/layout/custom_dialog.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
android:id="#+id/relativeLayout1"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<TextView
android:id="#+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginTop="10dip"
android:text="wpisz tekst by wyszukać piosenkę"
android:textColor="#5E636D" />
<EditText
android:id="#+id/value_mini"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginTop="40.0dip"
android:background="#drawable/input_text"
android:paddingLeft="10px" />
<Button
android:id="#+id/search_mini"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginTop="80dip"
android:text="szukaj" />
</RelativeLayout>
in method:
Dialog dialog = new Dialog(Start.this, R.style.Dialog);
dialog.setContentView(R.layout.custom_dialog);
Button button = (Button) dialog.findViewById(R.id.search_mini);
final EditText et = (EditText) dialog.findViewById(R.id.value_mini);
button.setOnClickListener(new OnClickListener() {
#Override
public void onClick(View v) {
//do something
}
});
dialog.show();