我是Android的新手.
我想知道是否可以在ImageView上放置一个按钮或其他组件.我已经尝试将图像设置为LinearLayout的背景图像,但是当我在横向和纵向模式之间切换时,图像部分会被更改.
非常感谢.
我有一个FragmentActivity和一个处理2个碎片的ViewPager.
Run Code Online (Sandbox Code Playgroud)public class MyFragmentActivity extends FragmentActivity{
private Fragment f1; private Fragment f2; private ViewPager myPager; private MyFragmentAdapter mFragmentsAdapter; private static ArrayAdapter<Fragment> mFragmentArray; public void onCreate(Bundle icicle) { super.onCreate(icicle); setContentView(R.layout.my_layout); myViewPager = (ViewPager) findViewById(R.id.pager_acciones); mFragmentArray = new ArrayAdapter<Fragment>(getApplicationContext(),android.R.layout.simple_list_item_1); f1 = new Fragment(); f1 = new Fragment(); mFragmentArray.add(f1); mFragmentArray.add(f2); mFragmentsAdapter = new MyFragmentAdapter(getSupportFragmentManager()); myPager.setAdapter(mFragmentsAdapter); myPartidoPager.setCurrentItem(0); } public static class MyFragmentAdapter extends FragmentPagerAdapter { public AccionesFragmentAdapter(FragmentManager fm) { super(fm); } @Override public int getCount() { return mFragmentArray.getCount(); } @Override public Fragment getItem(int position) …
我有一个服务,每0.1秒发送一次Intent到我的Activity.我用它来更新Chronometer的自定义实现.一切顺利.当我想在我的Activity中的Fragment中的TableView中更新14 TextView时,问题出现了.这里的应用程序非常慢.
我的Activity中的方法,它从服务接收Intent:
private BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
long milis = intent.getLongExtra("milis",0);
if( mFragment != null)
mFragment.Update(milis);
}
};
Run Code Online (Sandbox Code Playgroud)
Fragment中我更新TextViews的代码:
public void actualizarTiempoJuego(long milis){
// Se recuperan los tiempos acumulados y se aumenta la cantidad pasada como parámetro
for(int i=0;i<7;++i) {
long mCurrentMilis1 = mVectorMilis1.get(i);
long mCurrentMilis2 = mVectorMilis2.get(i);
TextView1 t1 = mListaTitularLayoutLocal.get(i);
TextView1 t2 = mListaTitularLayoutVisitante.get(i);
t1.setText(String.value(milis + mCurrentMilis1));
t2.setText(String.value(milis + mCurrentMilis2));
}
}
Run Code Online (Sandbox Code Playgroud)
我做错了什么,还是仅仅是因为我想在效率方面做一些非常复杂的事情?
我有一个ImageView,我想画一条线.我做了以下事情:
mImagenCampo = (ImageView) findViewById(R.id.imagen_campo);
Run Code Online (Sandbox Code Playgroud)
crearPunto(mArea9M, mPaloIzq,v.getWidth(), mPaloIzq,Color.WHITE);
功能是:
private void crearPunto(float x, float y, float xend, float yend, int color) {
BitmapDrawable bmpDraw = (BitmapDrawable) mImagenCampo.getDrawable();
Bitmap bmp = bmpDraw.getBitmap().copy(Config.RGB_565, true);
Canvas c = new Canvas(bmp);
Paint p = new Paint();
p.setColor(color);
c.drawLine(x, y, xend, yend, p);
mImagenCampo.setImageBitmap(bmp);
}
Run Code Online (Sandbox Code Playgroud)
我的问题是画线,但它没有得到权利坐标.它比它应该是小的.
谢谢
编辑:我忘了说mImagenCampo是一个ImageView
我的应用程序遇到了一些性能问题,我发现这篇文章对我很有帮助.
问题是当我执行层次结构查看器时,我总是拥有n/a as Measure视图的每个组件的布局和绘制时间.
我在我的虚拟设备中使用Android 3.2.
谢谢.
编辑
我添加了Hierarchy Viewer输出的捕获:

当我使用Hierarchy查看器和初始活动(一个非常简单的活动)时,它完美地工作.但是当我使用这个活动时,我看不到绘制每个组件的时间.
我有一个包含3个片段的布局:
<LinearLayout android:id="@+id/acciones"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<LinearLayout
android:id="@+id/fragment1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1">
</LinearLayout>
<LinearLayout
android:id="@+id/fragment2"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1">
</LinearLayout>
<LinearLayout
android:orientation="vertical"
android:id="@+id/f3"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1">
</LinearLayout>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
在第一个片段中,我有一个TableLayout,其中每行有一个自定义TextView.我想知道片段的宽度,因为如果自定义TextView比片段宽,我将设置所需的行数.
这是我在自定义TextView中所做的:
@Override
protected void onMeasure (int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
mMaxWidth = (float) (getMeasuredWidth());
}
Run Code Online (Sandbox Code Playgroud)
通过这一行,我得到了三个片段的宽度,而不仅仅是包含自定义TextView的片段.
谢谢.
我想放置一些按钮 - 每个按钮在我知道的一个特定坐标处,并指定x和y位置.是否可以在特定坐标处放置按钮?如果有可能,这是正确的(Android编程方式)?