我有自定义搜索栏,我可以通过设置一个新的进度drawable来改变onProgressChanged中的颜色:
seek.setProgressDrawable(res.getDrawable(R.drawable.seekbar_bg1));
Run Code Online (Sandbox Code Playgroud)
但是我想要一个具有从绿色到红色的纯色的搜索栏,具体取决于进度.有没有办法使用像渐变颜色这样的东西,所以我不需要创建这样的100个drawables?
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@android:id/background">
<shape>
<solid android:color="@android:color/transparent" />
</shape>
</item>
<item android:id="@+id/progressshape">
<clip>
<shape>
<solid android:color="@color/custom_yellow" />
</shape>
</clip>
</item>
</layer-list>
Run Code Online (Sandbox Code Playgroud)
对于那些对解决方案感兴趣的人.我使用以下代码:
这个方法来设置颜色:
public void setProgressBarColor(int newColor){
LayerDrawable ld = (LayerDrawable) getProgressDrawable();
ClipDrawable d1 = (ClipDrawable) ld.findDrawableByLayerId(R.id.progressshape);
d1.setColorFilter(newColor, PorterDuff.Mode.SRC_IN);
}
Run Code Online (Sandbox Code Playgroud)
并在onProgressChanged:
if(progress <= 50){
seek.setProgressBarColor(Color.rgb( 255 - (255/100 * (100 - progress*2)), 255, 0));
}else{
seek.setProgressBarColor(Color.rgb( 255, 255 - (255/100 * (progress - 50)*2), 0));
}
Run Code Online (Sandbox Code Playgroud) 我正在使用GraphView库(参见:https://github.com/jjoe64/GraphView或http://www.jjoe64.com/p/graphview-library.html)
但我想使用日期/时间作为X-as.有谁知道一个简单的方法来完成这个或任何人都可以推动我朝着正确的方向?
我正在尝试设置inapp paypall MECL交易.
但它一直无法获取设备令牌(couldNotFetchDeviceReferenceToken)
在初始化库时,我得到了按钮,但是当我在按钮上多次单击时,onClickListeneren只获得第一次点击(而在onClick中没有做任何事情).
获取以下错误:
12-19 16:59:41.731: ERROR/Error(4745): Authentication failed, button not enabled.
12-19 16:59:41.739: ERROR/paypal(4745): FAIL receiving Token
12-19 17:00:06.544: ERROR/PP Init(4745): INITIALIZE_FAILURE
Run Code Online (Sandbox Code Playgroud)
有谁知道我做错了什么?
这里有一些来源:
// The PayPal server to be used - can also be ENV_NONE and ENV_LIVE
private static final int server = PayPal.ENV_SANDBOX;
// The ID of your application that you received from PayPal
private static final String appID = "APP-.....xxxxxxx";
Handler hRefresh = new Handler(){
@Override
public void handleMessage(Message msg) {
switch(msg.what){
case INITIALIZE_SUCCESS: …Run Code Online (Sandbox Code Playgroud) 你怎么能创建模态过渡动画?
我正在使用jetpack导航图,您可以在其中绑定过渡动画.但默认行为看起来很奇怪.让我解释一下原因.
如果绑定没有退出动画的输入动画.您的退出片段将在动画开始时消失.哪个看起来不太好看.
所以我决定创建一个具有相同输入动画持续时间的退出动画,它什么都不做.但是现在输入片段将在退出片段的顶部滑动但在退出片段的工具栏下面(每个片段包含一个工具栏).
有没有办法为jetpack过渡创建一个漂亮的模态动画?
这是我的幻灯片动画..
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/decelerate_interpolator"
android:fillAfter="true">
<translate
android:duration="@android:integer/config_mediumAnimTime"
android:fromYDelta="100%"
android:toYDelta="0%">
</translate>
</set>
Run Code Online (Sandbox Code Playgroud) android android-animation android-jetpack android-architecture-navigation
我有一个带有ActionMode的RecyclerView,可以通过长按RecyclerView项来激活它.
如何使用Xamarin UI测试在Android中触发长按?AndroidApp包含一个方法TouchAndHold(Func查询)但这个似乎不会触发长按.
这里有人有解决方案吗?
我的代码:
Func<AppQuery, AppQuery> test = c => c.Marked("Test");
app.WaitForElement (test);
app.TouchAndHold (test);
Run Code Online (Sandbox Code Playgroud) 我已经使用 ItemKeyedDataSource 实现了新的 PagedListAdapter。我的列表包含带有“赞”按钮的提要项目。单击“赞”按钮应刷新该项目。
要在单击 Like 按钮时刷新我的列表项,我会更新 Firestore 后端中的状态,并在 ItemKeyedDataSource 上调用 invalidate。但这将刷新我的整个列表,同时跳回列表顶部。
我不确定这是否是正常行为,所以我去调试并检查我的 DiffUtil.ItemCallback 是否是问题所在。但这两个方法(areItemsTheSame 和 areContentsTheSame)永远不会被调用。
那么,在 DataSource 上调用 invalidate 是触发单个项目更新的方法吗?DiffUtil 会帮助我在更新后跟踪我在列表中的位置,还是我看错了方向?
android android-recyclerview android-jetpack android-pagedlistview
我做了一个拖放GridView.除了第一次拖放外,一切都很完美.我无法找到它第一次发生的原因.
第一次将项目拖动到gridview中的其他项目时,项目的imageview源将丢失.当我放弃它时,源将被修复.之后,每件事都会正常工作.任何想法我如何解决这个或奇怪的行为的原因.欢迎各方面的帮助.
这是我的touchListener将处理拖放:
mGridView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
GridView parent = (GridView) v;
int x = (int) event.getX();
int y = (int) event.getY();
int position = parent.pointToPosition(x, y);
if (position > AdapterView.INVALID_POSITION) {
int count = parent.getChildCount();
for (int i = 0; i < count; i++) {
View curr = parent.getChildAt(i);
curr.setOnDragListener(new View.OnDragListener() {
@Override
public boolean onDrag(View v, DragEvent event) {
boolean result = true;
int action = …Run Code Online (Sandbox Code Playgroud) 是否可以通过Android设备的手机扬声器播放音频?手机内部较小的扬声器产生低音量的声音,只有在您的耳朵紧贴电话时才能听到.
希望我的描述足够清楚,以便理解我的问题.
如果可能,一个如何实现这一点的例子将非常有帮助.
编辑 目前我正在使用以下代码初始化我的MediaPlayer.
mediaPlayer = new MediaPlayer();
mediaPlayer.setOnBufferingUpdateListener(this);
mediaPlayer.setOnCompletionListener(this);
mediaPlayer.setAudioStreamType(AudioManager.STREAM_VOICE_CALL);
mediaPlayer.setDataSource(audioPath);
mediaPlayer.prepare();
Run Code Online (Sandbox Code Playgroud) 我用自定义动画(向上和向下滑动)制作了一个主题。动画在较旧的 android 版本上运行良好。但是,当我在 Android 4.0 (ICS) 上尝试时,关闭动画不起作用。只有上滑动画在 ICS 上运行良好。
这是我用于动画的主题:
<style name="myTheme" parent="android:Theme.Black">
<item name="android:windowTitleSize">45dip</item>
<item name="android:windowTitleBackgroundStyle">@style/CustomWindowTitleBackground</item>
<item name="android:windowAnimationStyle">@style/myTheme.Window</item>
</style>
<style name="myTheme.Window" parent="@android:style/Animation.Activity">
<item name="android:activityOpenEnterAnimation">@anim/push_up_in_no_alpha</item>
<item name="android:activityOpenExitAnimation">@anim/no_anim</item>
<item name="android:activityCloseEnterAnimation">@anim/no_anim</item>
<item name="android:activityCloseExitAnimation">@anim/push_down_out_no_alpha</item>
</style>
Run Code Online (Sandbox Code Playgroud)
这是push_down_out_no_alpha.xml:
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate android:fromYDelta="0" android:toYDelta="100%p"
android:duration="@android:integer/config_longAnimTime"/>
</set>
Run Code Online (Sandbox Code Playgroud)
当我在代码中设置动画时,它在 ICS 上也能正常工作,但为什么不作为主题呢?
this.overridePendingTransition(R.anim.no_anim,R.anim.push_down_out_no_alpha);
Run Code Online (Sandbox Code Playgroud)
有谁知道为什么它不能在 Android 4.0 (ICS) 上运行?
我尝试将我的Cursor数据转换为arraylist.但最后,arraylist中的所有数据都被最后一行所覆盖.我做错了什么?
Cursor c = myDbHelper.getLvl1Cata();
String[] data = new String[3];
c.moveToFirst();
while(!c.isAfterLast()) {
data[0] = Integer.toString(c.getInt(0));
data[1] = c.getString(1);
data[2] = Integer.toString(c.getInt(2));
Log.e("cc", data[1]);
catalogueData.add(data);
c.moveToNext();
}
Run Code Online (Sandbox Code Playgroud) android ×9
android-4.0-ice-cream-sandwich ×1
android-architecture-navigation ×1
animation ×1
arraylist ×1
audio ×1
charts ×1
colors ×1
cursor ×1
datetime ×1
gridview ×1
long-click ×1
nunit ×1
paypal ×1
seekbar ×1
speaker ×1
themes ×1
ui-testing ×1
xamarin ×1