Monday, July 22, 2019

Round AlertDialog with Animation

MainActivity.java


public class MainActivity extends AppCompatActivity {

    
TextView tvDialogTitle, tvDialogMessage, tvDialogok, tvDialogCancel;
ImageView ivDialogClose, ivImage;
final Dialog builder = new Dialog(activity);

@Override    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

builder.requestWindowFeature(Window.FEATURE_NO_TITLE);
View view1 = LayoutInflater.from(activity).inflate(R.layout.dialog_design, null);
tvDialogMessage = view1.findViewById(R.id.tvDialogMessage);
tvDialogTitle = view1.findViewById(R.id.tvDialogTitle);
ivDialogClose = view1.findViewById(R.id.ivDialogClose);
tvDialogok = view1.findViewById(R.id.tvDialogok);
tvDialogCancel = view1.findViewById(R.id.tvDialogCancel);
ivImage = view1.findViewById(R.id.ivImage);

if (status == 0) {
    tvDialogMessage.setText(getResources().getString(R.string.are_you_sure_you_want_to_logout));
    tvDialogTitle.setText(getResources().getString(R.string.logout));
    ivImage.setImageResource(R.drawable.logout_dialog_icon);
} else {
    tvDialogMessage.setText(getResources().getString(R.string.are_you_sure_you_want_to_exit));
    tvDialogTitle.setText(getResources().getString(R.string.confirm));
    ivImage.setImageResource(R.drawable.question_mark);
}

tvDialogok.setOnClickListener(new View.OnClickListener() {
    @Override    public void onClick(View v) {
        builder.dismiss();
      
    }
});


ivDialogClose.setOnClickListener(new View.OnClickListener() {
    @Override    public void onClick(View v) {
        builder.dismiss();
    }
});

tvDialogCancel.setOnClickListener(new View.OnClickListener() {
    @Override    public void onClick(View v) {
        builder.dismiss();
    }
});
builder.setCancelable(false);
builder.getWindow().setBackgroundDrawable(getResources().getDrawable(R.drawable.dialog_round));
builder.getWindow().getAttributes().windowAnimations = R.style.DialogTheme;
builder.setContentView(view1);
builder.show();


}

activity_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:background="@android:color/white"
    android:orientation="vertical">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="5dp"
        android:orientation="horizontal"
        android:padding="3dp">

        <TextView
            android:id="@+id/tvDialogTitle"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:fontFamily="@font/abeezee"
            android:padding="3dp"
            android:text="title"
            android:textColor="@android:color/black"
            android:textSize="15dp"
            android:textStyle="bold" />

        <ImageView
            android:id="@+id/ivDialogClose"
            android:layout_width="25dp"
            android:layout_height="25dp"
            android:layout_marginRight="10dp"
            android:padding="2dp"
            android:src="@drawable/ic_close" />

    </LinearLayout>

    <View
        android:layout_width="match_parent"
        android:layout_height="0.5dp"
        android:layout_marginTop="5dp"
        android:background="@color/clgColor"></View>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginRight="10dp"
        android:orientation="horizontal">

        <ImageView
            android:id="@+id/ivImage"
            android:layout_width="70dp"
            android:layout_height="70dp"
            android:padding="10dp"
            android:src="@drawable/question_mark" />

        <TextView
            android:id="@+id/tvDialogMessage"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout_marginLeft="10dp"
            android:fontFamily="@font/abeezee"
            android:gravity="left"
            android:text="meassage"
            android:lineSpacingExtra="3dp"
            android:textColor="@android:color/black"
            android:textSize="15sp" />

    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginRight="15dp"
        android:gravity="right"
        android:orientation="horizontal">

        <TextView
            android:id="@+id/tvDialogok"
            android:layout_width="100dp"
            android:layout_height="wrap_content"
            android:background="@drawable/round_shadow"
            android:fontFamily="@font/abeezee"
            android:gravity="center"
            android:paddingLeft="30dp"
            android:paddingTop="15dp"
            android:paddingRight="25dp"
            android:paddingBottom="15dp"
            android:text="Yes"
            android:textColor="@android:color/black" />

        <TextView
            android:id="@+id/tvDialogCancel"
            android:layout_width="100dp"
            android:layout_height="wrap_content"
            android:background="@drawable/round_shadow"
            android:fontFamily="@font/abeezee"
            android:gravity="center"
            android:paddingLeft="30dp"
            android:paddingTop="15dp"
            android:paddingRight="25dp"
            android:paddingBottom="15dp"
            android:text="No"
            android:textColor="@android:color/black" />

    </LinearLayout>
</LinearLayout>
round_shadow.xml

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">

<!-- Drop Shadow Stack -->
<item>
    <shape>
        <padding
            android:bottom="2dp"
            android:left="3dp"
            android:right="2dp"
            android:top="2dp" />

        <solid android:color="@android:color/transparent" />

        <corners android:radius="5dp" />
    </shape>
</item>
<item>
    <shape>
        <padding
            android:bottom="2dp"
            android:left="3dp"
            android:right="2dp"
            android:top="2dp" />

        <solid android:color="@android:color/transparent" />

        <corners android:radius="5dp" />
    </shape>
</item>
<item>
    <shape>
        <padding
            android:bottom="2dp"
            android:left="3dp"
            android:right="2dp"
            android:top="2dp" />

        <solid android:color="#20CCCCCC" />

        <corners android:radius="5dp" />
    </shape>
</item>
<item>
    <shape>
        <padding
            android:bottom="2dp"
            android:left="3dp"
            android:right="2dp"
            android:top="2dp" />

        <solid android:color="#30CCCCCC" />

        <corners android:radius="5dp" />
    </shape>
</item>
<item>
    <shape>
        <padding
            android:bottom="2dp"
            android:left="3dp"
            android:right="2dp"
            android:top="2dp" />

        <solid android:color="#50CCCCCC" />

        <corners android:radius="5dp" />
    </shape>
</item>

<!-- Background -->
<item>
    <shape>
        <solid android:color="@android:color/white" />

        <corners android:radius="5dp" />
    </shape>
</item>

</layer-list>
dialog_round.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid
    android:color="#FFFFFF"/>
<corners
    android:radius="5dp" />
<padding
    android:top="15dp"
    android:bottom="15dp" />
</shape>
Styles.xml
<style name="DialogTheme">
        <item name="android:windowEnterAnimation">@anim/zoom_in</item>
        <item name="android:windowExitAnimation">@anim/zoom_out</item>
 </style>
anim/zoom_in.xml

<?xml version="1.0" encoding="utf-8"?>
  <scale xmlns:android="http://schemas.android.com/apk/res/android"
     android:duration="200"
     android:fromXScale="0"
     android:fromYScale="0"
     android:pivotX="50%"
     android:pivotY="50%"
     android:toXScale="0.9"
     android:toYScale="0.9">
</scale>
anim/zoom_out.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" android:fillAfter="true">
<scale
    android:duration="200"
    android:fromXScale="1.0"
    android:fromYScale="1.0"
    android:pivotX="50%"
    android:pivotY="50%"
    android:toXScale="0.5"
    android:toYScale="0.5"/>
</set>

No comments:

Post a Comment

Insert,Update and delete in Device Calender

Androidmanifest.xml < uses-permission android :name ="android.permission.WRITE_CALENDAR" /> < uses-permission androi...