标签: android-widget

自定义textview使用自定义字体

我正在尝试使用自己的自定义字体实现自定义textview.

有没有办法在做Super.onDraw()之前设置字体?

以便将常用字体替换为我想要使用的自定义字体.

就像是:

protected void onDraw(Canvas canvas)
{
    Typeface font1 = Typeface.createFromAsset(context.getAssets(), "fonts/myfonts.ttf");
    this.setTypeface(font1);
    this.setTextSize(18);
    super.onDraw(canvas);
}
Run Code Online (Sandbox Code Playgroud)

我知道上面的代码不起作用.

或者我别无选择,只能使用drawText()来做到这一点?

android android-widget drawtext ondraw typeface

1
推荐指数
1
解决办法
2760
查看次数

旋转器项目的交替颜色

我可以在旋转器控件中使项目以交替的颜色显示

android spinner android-widget android-layout

1
推荐指数
1
解决办法
3188
查看次数

单击时如何使TextView闪烁其背景?

我喜欢在scrollview中嵌入10+ textview来提供ListView效果(由于某些特殊原因,我不想在这里使用ListView).

关于textview的一些细节是它有一个背景,它是一个图像.

所以我的问题是,当我点击我所拥有的10多个视图中的特定文本视图时,我想要像原生ListView中的那些那样为背景设置动画.如果有可能,有人可以提供一些指示吗?

如果没有为背景设置动画,我们可以至少为点击的文本视图的边框设置动画效果吗?

谢谢,萨娜.

android textview android-widget

1
推荐指数
1
解决办法
1268
查看次数

Android形状drawable xml未在设备或模拟器上绘制

我只是想不出来.我在res/drawable/start_light.xml中有这个形状

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="ring"
    android:innerRadius="20dp"
    android:thickness="0dp"
    android:useLevel="false">
    <solid android:color="#FF0000" />
</shape>
Run Code Online (Sandbox Code Playgroud)

在res/values/styles.xml中我有:

<?xml version="1.0" encoding="UTF-8"?>
<resources>
    <style name="StartLight">
        <item name="android:layout_height">50dp</item>
        <item name="android:layout_width">50dp</item>
        <item name="android:background">@drawable/start_light</item>
    </style>
</resources>
Run Code Online (Sandbox Code Playgroud)

在主要布局中我有:

<LinearLayout 
    android:id="@+id/linearLayout1" 
    android:layout_gravity="center_horizontal" 
    android:layout_width="wrap_content" 
    android:gravity="center_vertical" android:layout_height="150dp">
    <ImageView android:src="@drawable/start_light" android:id="@+id/light5" android:layout_width="50dp" android:layout_height="50dp"></ImageView>
    <View style="@style/StartLight" android:id="@+id/light4"></View>
    <View style="@style/StartLight" android:id="@+id/light3"></View>
    <View style="@style/StartLight" android:id="@+id/light2"></View>
    <View style="@style/StartLight" android:id="@+id/light1"></View>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

以太网方式,使用View或ImageView我在模拟器和设备上的布局中看不到任何红色圆圈.在xml图形设计师他们在那里.我在这里错过了什么?

xml android android-widget android-layout

1
推荐指数
1
解决办法
5353
查看次数

如何从android中的ArrayAdapter类调用下一页

Hai Friends我是Android的新手..如何从ArrayAdapter类导航到另一个活动class.i不知道如何导航.我知道"intent"关键字用于将一个活动导航到另一个活动..但现在我是使用ArrayAdapter类,如果我使用"intent"关键字来导航另一个活动,我会收到错误.

package org.ajsquare.test;

import android.content.Context;
import android.content.Intent;
import android.content.res.TypedArray;
 import android.database.DataSetObserver;
 import android.graphics.Color;
 import android.sax.StartElementListener;
  import android.view.LayoutInflater;
  import android.view.View;
 import android.view.View.OnClickListener;
  import android.view.ViewGroup;
  import android.widget.ArrayAdapter;
  import android.widget.ImageView;
 import android.widget.ListAdapter;
 import android.widget.TextView;
 import android.widget.Toast;

 public class Teamname extends ArrayAdapter<String>
{



  private LayoutInflater mInflater;

private String[] mStrings;
private TypedArray mimages;
String mteam=null;
private int mViewResourceId;
Context c;

public Teamname(Context context, int textViewResourceId,TypedArray images,String[] test) {
    super(context, textViewResourceId,test);
    c=context;
    mimages=images;
    mViewResourceId=textViewResourceId;
    mInflater=(LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    mStrings=test;
        }

public int getCount()
{

    return mStrings.length;
}

public …
Run Code Online (Sandbox Code Playgroud)

android android-widget android-emulator android-intent android-layout

1
推荐指数
1
解决办法
2676
查看次数

小部件发送多种类型的意图

我正在构建一个具有多个按钮的小部件,每个按钮都将自己的意图发送给广播接收器.广播接收器假设基于按下哪个按钮显示Toast消息.代码目前看起来像这样:

public class WidgetProvider extends AppWidgetProvider {

    @Override
    public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds){

        ComponentName thisWidget = new ComponentName(context, WidgetProvider.class);
        int[] allWidgetIds = appWidgetManager.getAppWidgetIds(thisWidget);
        for (int widgetId : allWidgetIds) {
            RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.widget_layout);

            SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);

            // Set the text of the buttons
            remoteViews.setTextViewText(R.id.widgetPreset1Button, prefs.getString("widget1", "Not set"));
            remoteViews.setTextViewText(R.id.widgetPreset2Button, prefs.getString("widget2", "Not set"));
            remoteViews.setTextViewText(R.id.widgetPreset3Button, prefs.getString("widget3", "Not set"));
            remoteViews.setTextViewText(R.id.widgetPreset4Button, prefs.getString("widget4", "Not set"));

            // Register the buttons with an OnClick event
            Intent intent1 = new Intent("myapp.SendWidgetPreset");
            intent1.putExtra("Widget", 1); …
Run Code Online (Sandbox Code Playgroud)

android broadcastreceiver android-widget android-intent android-pendingintent

1
推荐指数
1
解决办法
2604
查看次数

在StackView小部件中使用RemoteViews的AsynTask

我试图搜索有关StackView Widget的信息,我发现了很多,但没有人习惯从url获取数据.所以问题是,当我正在处理url时,我的RemoteViews为null,因此它们不会显示任何内容.一旦完成该过程,我想从asyntask更新那个RemoteViews(在同一个类中).我怎样才能做到这一点 ?或同步他们?

这是我的Widget服务代码:

public class RSSService extends RemoteViewsService {

private ManagerRSS mr;
private Cursor c;
private int lenght;
private List<Provider> mWidgetItems = new ArrayList<Provider>();
private RemoteViews rv = null;
public ArrayList<Item> result = new ArrayList<Item>();
private boolean isFinished = false;

@Override
public void onCreate() {
    // TODO Auto-generated method stub
    mr = new ManagerRSS(this.getApplicationContext());
    mr.open();
    mr.openRead();
    c = mr.getCursor();
    lenght = c.getCount();
}

@Override
public void onDestroy() {
    // TODO Auto-generated method stub
    c.close();
    mr.close();
    super.onDestroy(); …
Run Code Online (Sandbox Code Playgroud)

android view widget android-widget stackview

1
推荐指数
1
解决办法
2371
查看次数

使用AppWidgetProvider的getApplicationContext()

我正在尝试将我连接Widget到应用程序的数据库,但我一无所知。
工作原理:

import android.app.Activity;
public class Widgets1 extends Activity{
mMioDbHelper = new SqlHelper(getApplicationContext());
Run Code Online (Sandbox Code Playgroud)

这不是吗?

import android.appwidget.AppWidgetProvider;
public class Widgets1 extends AppWidgetProvider{
mMioDbHelper = new SqlHelper(getApplicationContext());
Run Code Online (Sandbox Code Playgroud)

如何将小部件连接到数据库?我的意思是如何从小部件类进行查询?

谢谢。

java android widget android-widget android-context

1
推荐指数
1
解决办法
2457
查看次数

AppWidgetManager.ACTION_APPWIDGET_BIND始终返回Activity.RESULT_CANCELED

我正在构建一个自定义启动器。我已经按照Android文档中提到的步骤来托管应用小部件以及浏览默认的Launcher源代码。但是,当我使用意图动作作为AppWidgetManager.ACTION_APPWIDGET_BIND调用startActivityForResult时,即使用户正在接受UI上显示的对话框提示,它也始终返回Activity.RESULT_CANCELED。

这是代码片段

    appWidgetManager = AppWidgetManager.getInstance(this);
    appWidgetHost = new AppWidgetHost(this, 7772);
    int appWidgetId = appWidgetHost.allocateAppWidgetId();
    Intent pickIntent = new Intent(AppWidgetManager.ACTION_APPWIDGET_PICK);
    pickIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId);
    startActivityForResult(pickIntent, REQUEST_PICK);

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        Log.d(TAG, " onActivityResult " + requestCode + " res " + resultCode);
        if (requestCode == REQUEST_PICK && resultCode == Activity.RESULT_OK)
        {
            int appWidgetId = data.getIntExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, -1);
            AppWidgetProviderInfo info = appWidgetManager.getAppWidgetInfo(appWidgetId);

            boolean hasPermission = appWidgetManager.bindAppWidgetIdIfAllowed(appWidgetId, info.provider);
            if (!hasPermission)
            {
                Intent intent = new Intent(AppWidgetManager.ACTION_APPWIDGET_BIND);
                intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, …
Run Code Online (Sandbox Code Playgroud)

android android-widget android-launcher

1
推荐指数
1
解决办法
472
查看次数

如何从EditText禁用仅剪切选项?

我有两个用于UserName和Password的EditText.第一个UserName EditText将是Visible.it将检查Valid UserName.然后,Password EditText将可见.我希望用户复制用户名但不想剪切.如何禁用剪切选项.但是下面的代码禁用所有选项.代码:

     @Override
                                public boolean onCreateActionMode(ActionMode actionMode, Menu menu) {
                                    return false;
                                }

                                @Override
                                public boolean onPrepareActionMode(ActionMode actionMode, Menu menu) {

                                     return false;
                                }

                                @Override
                                public boolean onActionItemClicked(ActionMode actionMode, MenuItem menuItem) {
                                    return false;
                                }

                                @Override
                                public void onDestroyActionMode(ActionMode actionMode) {

                                }
                            });
Run Code Online (Sandbox Code Playgroud)

android android-widget android-layout android-edittext

1
推荐指数
1
解决办法
172
查看次数