3

Here's my layout in main_activity.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:weightSum="4" >
    <EditText
        android:id="@+id/result_id"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:inputType="none"
        android:layout_weight="1" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="3"
        android:orientation="vertical"
        android:weightSum="4" >
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:weightSum="4"
            android:layout_weight="1"
            android:orientation="horizontal" >
           <Button
                android:id="@+id/Btn7_id"
                style="@style/ButtonTextWhite"
                android:textColor="@drawable/buttontextcolorwhite"
                android:background="@drawable/custombutton"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:text="7"
                android:layout_weight="1"
                android:onClick="btn7Clicked" />
            <Button
                android:id="@+id/Btn8_id"
                style="@style/ButtonTextWhite"
                android:background="@drawable/custombutton"
                android:textColor="@drawable/buttontextcolorwhite"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:text="8"
                android:layout_weight="1"
                android:onClick="btn8Clicked" />
            <Button
                android:id="@+id/Btn9_id"
                style="@style/ButtonTextWhite"
                android:background="@drawable/custombutton"
                android:textColor="@drawable/buttontextcolorwhite"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:text="9"
                android:layout_weight="1"
                android:onClick="btn9Clicked" />
            <Button
                android:id="@+id/Btnclear_id"
                style="@style/ButtonTextWhite"
                android:background="@drawable/custombutton"
                android:textColor="@drawable/buttontextcolorwhite"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:text="C"
                android:layout_weight="1"
                android:onClick="btnclearClicked" />
        </LinearLayout>
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:weightSum="4"
            android:layout_weight="1"
            android:orientation="horizontal" >
            <Button
                android:id="@+id/Btn4_id"
                style="@style/ButtonTextWhite"
                android:background="@drawable/custombutton"
                android:textColor="@drawable/buttontextcolorwhite"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:text="4"
                android:layout_weight="1"
                android:onClick="btn4Clicked" />
            <Button
                android:id="@+id/Btn5_id"
                style="@style/ButtonTextWhite"
                android:background="@drawable/custombutton"
                android:textColor="@drawable/buttontextcolorwhite"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:text="5"
                android:layout_weight="1"
                android:onClick="btn5Clicked" />
            <Button
                android:id="@+id/Btn6_id"
                style="@style/ButtonTextWhite"
                android:background="@drawable/custombutton"
                android:textColor="@drawable/buttontextcolorwhite"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:text="6"
                android:layout_weight="1"
                android:onClick="btn6Clicked" />
            <Button
                android:id="@+id/Btnplus_id"
                style="@style/ButtonTextWhite"
                android:background="@drawable/custombutton"
                android:textColor="@drawable/buttontextcolorwhite"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:text="+"
                android:layout_weight="1"
                android:onClick="btnplusClicked" />
        </LinearLayout>
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:weightSum="4"
            android:layout_weight="1"
            android:orientation="horizontal" >
             <Button
                android:id="@+id/Btn1_id"
                style="@style/ButtonTextWhite"
                android:background="@drawable/custombutton"
                android:textColor="@drawable/buttontextcolorwhite"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:text="1"
                android:layout_weight="1"
                android:onClick="btn1Clicked" />
            <Button
                android:id="@+id/Btn2_id"
                style="@style/ButtonTextWhite"
                android:background="@drawable/custombutton"
                android:textColor="@drawable/buttontextcolorwhite"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:text="2"
                android:layout_weight="1"
                android:onClick="btn2Clicked" />
            <Button
                android:id="@+id/Btn3_id"
                style="@style/ButtonTextWhite"
                android:background="@drawable/custombutton"
                android:textColor="@drawable/buttontextcolorwhite"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:text="3"
                android:layout_weight="1"
                android:onClick="btn3Clicked" />

            <Button
                android:id="@+id/Btnminus_id"
                style="@style/ButtonTextWhite"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:background="@drawable/custombutton"
                android:textColor="@drawable/buttontextcolorwhite"
                android:onClick="btnminusClicked"
                android:text="-" />

        </LinearLayout>
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:weightSum="3"
            android:layout_weight="1"
            android:orientation="horizontal" >
            <Button
                android:id="@+id/Btnequal_id"
                style="@style/ButtonTextWhite"
                android:background="@drawable/custombutton"
                android:textColor="@drawable/buttontextcolorwhite"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:text="="
                android:layout_weight="1"
                android:onClick="btnequalClicked" />

            <Button
                android:id="@+id/Btnmulti_id"
                style="@style/ButtonTextWhite"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:background="@drawable/custombutton"
                android:textColor="@drawable/buttontextcolorwhite"
                android:onClick="btnmultiClicked"
                android:text="*" />

            <Button
                android:id="@+id/Btndivide_id"
                style="@style/ButtonTextWhite"
                android:background="@drawable/custombutton"
                android:textColor="@drawable/buttontextcolorwhite"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:onClick="btndivideClicked"
                android:text="/"
                android:layout_weight="1" /> 
        </LinearLayout>
    </LinearLayout>
</LinearLayout>

http://postimg.org/image/72zhaeai3/28339a2a/

I've created custom buttons using layer lists with different looks for diffrent states (res/drawable/unpressedbutton.xml and res/drawable/pressedbutton.xml). Here's res/drawable/custombutton.xml:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="false" android:drawable="@drawable/unpressedbutton">

    </item>
    <item android:state_pressed="true" android:drawable="@drawable/pressedbutton">

    </item>
</selector>

I then handled the change in text color between the default and pressed state in much the same way. Here's res/drawable/buttontextcolorwhite.xml:

<?xml version="1.0" encoding="utf-8"?>

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true" android:color="#aaaaaa"/> <!-- pressed -->

    <item android:state_pressed="false" android:color="#ffffff"/> <!-- default -->
</selector>

But when Itried using the same approach for reducing the text size when button are pressed, it didn't worked at all:

<?xml version="1.0" encoding="utf-8"?>

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true" android:textSize="10"/> <!-- pressed -->

    <item android:state_pressed="false" android:textSize="12"/> <!-- default -->
</selector>

How can I achieve this?


I've changed my code accordingly to Drakora's answer:

package com.example.simplecalculator;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;


public class MainActivity extends Activity {

    public String str ="";
    Character op = 'q';
    int i,num,numtemp;
    EditText showResult;
    Button btnChangeTextSize;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        this.showResult = (EditText)findViewById(R.id.result_id);

        final EditText text = new EditText(this);

        this.btnChangeTextSize = (Button) findViewById(R.id.Btn1_id);
        this.btnChangeTextSize.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                text.setTextSize(6);   
            }
        });

    }
    public void btn1Clicked(View v){
        insert(1);
    }

...

But it doesn't work... and the button actually doesn't work anymore?

enter image description here

1 Answers1

0

I suggest trying this programatically rather than in xml files. In your activity class, initialize the EditText you want to change the text size of and add an onlick method like so

EditText text = new EditText(this);

    btnChangeTextSize = (Button) findViewById(R.id.Btn1_id);
    btnChangeTextSize.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
        text.setTextSize(10);   
        }
    });

When you implement this code be sure to press ctrl+shift+o to import the necessary classes you'll need.

Drakora
  • 108
  • 2
  • 10