gpt4 book ai didi

android - 如何在自定义键盘 Android 中动态更改按键的背景颜色或主题

转载 作者:太空宇宙 更新时间:2023-11-03 12:20:05 26 4
gpt4 key购买 nike

我正在开发自定义键盘应用程序,我需要设置或更改背景主题或键盘颜色。我的应用程序中的 setting.xml View 用户可以在其中为键行选择不同的背景主题和不同的颜色。在第一次启动应用程序时它工作正常但下次自定义键盘显示主题时没有改变。

我正在使用这段代码:

public class SoftKeyboard extends InputMethodService 
implements KeyboardView.OnKeyboardActionListener {
static final boolean DEBUG = false;

/**
* This boolean indicates the optional example code for performing
* processing of hard keys in addition to regular text generation
* from on-screen interaction. It would be used for input methods that
* perform language translations (such as converting text entered on
* a QWERTY keyboard to Chinese), but may not be used for input methods
* that are primarily intended to be used for on-screen text entry.
*/
static final boolean PROCESS_HARD_KEYS = true;

private static final int SELECT_PICTURE = 101;

private KeyboardView mInputView;
private CandidateView mCandidateView;
private CompletionInfo[] mCompletions;
private Context context = SoftKeyboard.this;
private StringBuilder mComposing = new StringBuilder();
private boolean mPredictionOn;
private boolean mCompletionOn;
private int mLastDisplayWidth;
private boolean mCapsLock;
private long mLastShiftTime;
private long mMetaState;

private LatinKeyboard mSymbolsKeyboard;
private LatinKeyboard mSymbolsShiftedKeyboard;
private LatinKeyboard mQwertyKeyboard;
private LatinKeyboard mSmilyKeyboard;
private LatinKeyboard mSmilyKeyboard1;

private LatinKeyboard mCurKeyboard;

private String mWordSeparators;

/**
* Main initialization of the input method component. Be sure to call
* to super class.
*/

@Override
public void onCreate() {
super.onCreate();

mWordSeparators = getResources().getString(R.string.word_separators);
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
String name = preferences.getString("Name","");


Log.e("SoftKeyboard - ",""+name+"OnCreate Method Called--");



if(!name.equalsIgnoreCase(""))
{
name = name+" Sethi"; /* Edit the value here*/
}
}

这是我的设置类,我在其中设置或选择颜色或主题:

public class Setting extends Activity implements OnClickListener {

LinearLayout roar, edge, burst, impact, blue_theme, orange_theme,
green_theme, black_brigthness, white_brightness;

Bundle bundle;

public static boolean isblackBrightness = false;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.setting);

// ----------UI intilisation---------------------
uiInitilisation();

}

public void uiInitilisation() {

roar = (LinearLayout) findViewById(R.id.ror_LL);
edge = (LinearLayout) findViewById(R.id.edge_LL);
burst = (LinearLayout) findViewById(R.id.burst_LL);
impact = (LinearLayout) findViewById(R.id.impact_LL);

// -------------Themes------------------------------
blue_theme = (LinearLayout) findViewById(R.id.blue_theme_LL);
orange_theme = (LinearLayout) findViewById(R.id.orange_theme_LL);
green_theme = (LinearLayout) findViewById(R.id.green_theme_LL);

// ------------Brightness----------------------------
black_brigthness = (LinearLayout) findViewById(R.id.black_brigthness_LL);
white_brightness = (LinearLayout) findViewById(R.id.white_brigthness_LL);

// --------------On Click Events-------------------

roar.setOnClickListener(this);
edge.setOnClickListener(this);
burst.setOnClickListener(this);
impact.setOnClickListener(this);

// -----------Theme-------------------------------------
blue_theme.setOnClickListener(this);
orange_theme.setOnClickListener(this);
green_theme.setOnClickListener(this);

// ------------------Brightness--------------------------
black_brigthness.setOnClickListener(this);
white_brightness.setOnClickListener(this);

}

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()) {
case R.id.ror_LL:

startActivity(new Intent(Setting.this, MainActivity.class));

break;

case R.id.edge_LL:

startActivity(new Intent(Setting.this, MainActivity.class));




break;
case R.id.burst_LL:

startActivity(new Intent(Setting.this, MainActivity.class));

break;

case R.id.impact_LL:

startActivity(new Intent(Setting.this, MainActivity.class));

break;

case R.id.blue_theme_LL:

Intent i = new Intent(Setting.this,
MainActivity.class);
i.putExtra("color", "blue");

startActivity(i);


break;

case R.id.orange_theme_LL:
Intent i2 = new Intent(Setting.this,
MainActivity.class);
i2.putExtra("color", "orange");

startActivity(i2);

break;

case R.id.green_theme_LL:
Intent i3 = new Intent(Setting.this,
MainActivity.class);
i3.putExtra("color", "green");

startActivity(i3);

break;
case R.id.black_brigthness_LL:

Intent black_britness = new Intent(Setting.this,
MainActivity.class);
black_britness.putExtra("bright", "black");
startActivity(black_britness);

SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
SharedPreferences.Editor editor = preferences.edit();
editor.putString("Name","Harneet");
editor.commit();


isblackBrightness = true ;
Log.e("Black--","Black=="+isblackBrightness);

break;
case R.id.white_brigthness_LL:
Intent white_britness = new Intent(Setting.this,
MainActivity.class);
white_britness.putExtra("bright", "white");
startActivity(white_britness);
isblackBrightness = false;
Log.e("white--","White=="+isblackBrightness);

SharedPreferences preferences1 = PreferenceManager.getDefaultSharedPreferences(this);
SharedPreferences.Editor editor1 = preferences1.edit();
editor1.putString("Name","Arun");
editor1.commit();


break;

}
}
}

无论是否必须设置小部件,我都不知道如何执行此操作。

最佳答案

显示键盘时,框架调用onStartInputView。您可以对该函数进行编程,以查看共享首选项的值,并在键盘 View 上适本地设置颜色/主题。

关于android - 如何在自定义键盘 Android 中动态更改按键的背景颜色或主题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18180136/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com